@uipath/skills 1.195.1 → 1.196.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 (357) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CODEOWNERS +16 -10
  4. package/README.md +39 -4
  5. package/assets/skill-status.json +189 -0
  6. package/assets/uip-catalog-snapshot.json +67 -97
  7. package/commands/install-permissions.md +46 -2
  8. package/package.json +1 -1
  9. package/skills/uipath-admin/SKILL.md +6 -7
  10. package/skills/uipath-admin/references/audit-commands.md +32 -10
  11. package/skills/uipath-admin/references/audit-workflow-guide.md +25 -6
  12. package/skills/uipath-admin/references/ip-restriction/ip-restriction-commands.md +1 -1
  13. package/skills/uipath-agents/SKILL.md +5 -3
  14. package/skills/uipath-agents/references/coded/embedding-in-flows.md +6 -0
  15. package/skills/uipath-agents/references/coded/flow-integration.md +1 -0
  16. package/skills/uipath-agents/references/coded/frameworks/langgraph-integration.md +2 -2
  17. package/skills/uipath-agents/references/coded/frameworks/llamaindex-integration.md +1 -1
  18. package/skills/uipath-agents/references/coded/frameworks/openai-agents-integration.md +5 -1
  19. package/skills/uipath-agents/references/coded/lifecycle/build.md +1 -0
  20. package/skills/uipath-agents/references/coded/lifecycle/evaluate.md +8 -6
  21. package/skills/uipath-agents/references/coded/quickstart.md +17 -12
  22. package/skills/uipath-agents/references/lowcode/agent-definition.md +17 -16
  23. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
  24. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +1 -1
  25. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -4
  26. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +1 -1
  27. package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
  28. package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
  29. package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +12 -12
  30. package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +14 -14
  31. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +1 -1
  32. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +23 -20
  33. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +27 -26
  34. package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +12 -13
  35. package/skills/uipath-agents/references/lowcode/capabilities/mcp/mcp.md +133 -0
  36. package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +9 -9
  37. package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +25 -24
  38. package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +6 -6
  39. package/skills/uipath-agents/references/lowcode/critical-rules.md +17 -17
  40. package/skills/uipath-agents/references/lowcode/debug.md +55 -0
  41. package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +6 -6
  42. package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +1 -1
  43. package/skills/uipath-agents/references/lowcode/evaluations/evaluators.md +3 -3
  44. package/skills/uipath-agents/references/lowcode/evaluations/running-evaluations.md +8 -8
  45. package/skills/uipath-agents/references/lowcode/lowcode.md +18 -12
  46. package/skills/uipath-agents/references/lowcode/model-selection-guide.md +3 -3
  47. package/skills/uipath-agents/references/lowcode/project-lifecycle.md +53 -33
  48. package/skills/uipath-agents/references/lowcode/solution-resources.md +8 -8
  49. package/skills/uipath-api-workflow/SKILL.md +32 -83
  50. package/skills/uipath-api-workflow/references/cli-reference.md +40 -26
  51. package/skills/uipath-api-workflow/references/connector-activity-discovery.md +75 -23
  52. package/skills/uipath-api-workflow/references/troubleshooting.md +4 -12
  53. package/skills/uipath-automation-discovery/SKILL.md +234 -0
  54. package/skills/uipath-automation-discovery/references/intake-guide.md +85 -0
  55. package/skills/uipath-automation-discovery/references/mining-guide.md +156 -0
  56. package/skills/uipath-automation-discovery/references/report-template.md +95 -0
  57. package/skills/uipath-coded-apps/SKILL.md +0 -2
  58. package/skills/uipath-data-fabric/SKILL.md +0 -2
  59. package/skills/uipath-feedback/SKILL.md +1 -1
  60. package/skills/uipath-governance/SKILL.md +0 -2
  61. package/skills/uipath-human-in-the-loop/SKILL.md +2 -3
  62. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +1 -1
  63. package/skills/uipath-maestro-bpmn/references/operate/references/run.md +1 -1
  64. package/skills/uipath-maestro-bpmn/references/shared/local-metadata-regeneration-guide.md +2 -2
  65. package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +1 -1
  66. package/skills/uipath-maestro-case/SKILL.md +22 -27
  67. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +7 -1
  68. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +7 -16
  69. package/skills/uipath-maestro-case/references/case-commands.md +9 -9
  70. package/skills/uipath-maestro-case/references/case-editing-operations.md +51 -67
  71. package/skills/uipath-maestro-case/references/case-schema.md +74 -138
  72. package/skills/uipath-maestro-case/references/connector-integration.md +32 -5
  73. package/skills/uipath-maestro-case/references/connector-trigger-common.md +39 -12
  74. package/skills/uipath-maestro-case/references/evals/evals.json +9 -23
  75. package/skills/uipath-maestro-case/references/implementation.md +24 -24
  76. package/skills/uipath-maestro-case/references/phased-execution.md +24 -38
  77. package/skills/uipath-maestro-case/references/placeholder-tasks.md +9 -9
  78. package/skills/uipath-maestro-case/references/planning.md +20 -79
  79. package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +15 -122
  80. package/skills/uipath-maestro-case/references/plugins/case/planning.md +3 -1
  81. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +10 -22
  82. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +7 -5
  83. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +2 -0
  84. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +5 -5
  85. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +1 -1
  86. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +4 -4
  87. package/skills/uipath-maestro-case/references/plugins/logging/impl-json.md +10 -0
  88. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +10 -42
  89. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +5 -5
  90. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +8 -79
  91. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +7 -14
  92. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +1 -1
  93. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +3 -2
  94. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +1 -1
  95. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +3 -2
  96. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +1 -1
  97. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -3
  98. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +2 -2
  99. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +12 -7
  100. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
  101. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
  102. package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +1 -1
  103. package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +4 -3
  104. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +1 -1
  105. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -3
  106. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +3 -0
  107. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +6 -7
  108. package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +4 -2
  109. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +4 -27
  110. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +8 -20
  111. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +6 -11
  112. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -30
  113. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +4 -4
  114. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +8 -7
  115. package/skills/uipath-maestro-case/references/registry-discovery.md +4 -4
  116. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +12 -10
  117. package/skills/uipath-maestro-case/references/troubleshooting-guide.md +1 -1
  118. package/skills/uipath-maestro-flow/SKILL.md +9 -6
  119. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +4 -4
  120. package/skills/uipath-maestro-flow/references/author/references/brownfield.md +17 -2
  121. package/skills/uipath-maestro-flow/references/author/references/editing-operations-cli.md +1 -1
  122. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +3 -3
  123. package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +9 -9
  124. package/skills/uipath-maestro-flow/references/author/references/greenfield.md +13 -10
  125. package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +75 -5
  126. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +2 -1
  127. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +14 -4
  128. package/skills/uipath-maestro-flow/references/author/references/plugins/connector-trigger/impl.md +20 -4
  129. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +5 -5
  130. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/planning.md +5 -5
  131. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +81 -0
  132. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-manual.md +63 -0
  133. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl.md +59 -57
  134. package/skills/uipath-maestro-flow/references/author/references/plugins/http/planning.md +8 -7
  135. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +23 -23
  136. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +2 -2
  137. package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +1 -1
  138. package/skills/uipath-maestro-flow/references/diagnose/references/failure-modes.md +6 -6
  139. package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +2 -2
  140. package/skills/uipath-maestro-flow/references/evaluate/references/upload-safety.md +1 -1
  141. package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +8 -8
  142. package/skills/uipath-maestro-flow/references/operate/references/run.md +2 -2
  143. package/skills/uipath-maestro-flow/references/operate/references/ship.md +7 -7
  144. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +19 -17
  145. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +1 -1
  146. package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
  147. package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +7 -7
  148. package/skills/uipath-planner/SKILL.md +110 -74
  149. package/skills/{uipath-solution → uipath-planner}/assets/templates/agent-sdd-template.md +3 -3
  150. package/skills/{uipath-solution → uipath-planner}/assets/templates/api-workflow-sdd-template.md +4 -4
  151. package/skills/{uipath-solution → uipath-planner}/assets/templates/case-sdd-template.md +4 -4
  152. package/skills/{uipath-solution → uipath-planner}/assets/templates/coded-app-sdd-template.md +3 -3
  153. package/skills/{uipath-solution → uipath-planner}/assets/templates/flow-sdd-template.md +4 -4
  154. package/skills/{uipath-solution → uipath-planner}/assets/templates/rpa-sdd-template.md +11 -11
  155. package/skills/uipath-planner/references/multi-skill-patterns-guide.md +3 -3
  156. package/skills/uipath-planner/references/non-pdd-lane-guide.md +10 -6
  157. package/skills/uipath-planner/references/pdd-driven-lane-guide.md +17 -7
  158. package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -2
  159. package/skills/{uipath-solution/references/design → uipath-planner/references}/product-selection-guide.md +8 -8
  160. package/skills/{uipath-solution/references/design → uipath-planner/references}/rpa-product-guide.md +1 -1
  161. package/skills/{uipath-solution/references/design → uipath-planner/references}/sdd-generation-guide.md +26 -39
  162. package/skills/{uipath-solution/references/design → uipath-planner/references}/tenant-library-search-guide.md +7 -7
  163. package/skills/uipath-platform/SKILL.md +21 -48
  164. package/skills/uipath-platform/references/integration-service/http-request.md +5 -2
  165. package/skills/uipath-platform/references/integration-service/reference-resolution.md +19 -1
  166. package/skills/uipath-platform/references/integration-service/triggers.md +21 -5
  167. package/skills/uipath-platform/references/licensing/consumables-report.md +1 -1
  168. package/skills/uipath-platform/references/licensing/tenant-allocations.md +1 -1
  169. package/skills/uipath-platform/references/licensing/user-licenses-allocations.md +1 -1
  170. package/skills/uipath-platform/references/{resources → orchestrator}/manage-assets.md +37 -34
  171. package/skills/uipath-platform/references/orchestrator/manage-sessions.md +1 -1
  172. package/skills/uipath-platform/references/orchestrator/orchestrator.md +4 -31
  173. package/skills/uipath-platform/references/{resources → orchestrator}/process-queues.md +61 -50
  174. package/skills/uipath-platform/references/{resources → orchestrator}/resources.md +21 -21
  175. package/skills/uipath-platform/references/orchestrator/run-jobs.md +26 -14
  176. package/skills/uipath-platform/references/orchestrator/setup-environment.md +20 -16
  177. package/skills/uipath-platform/references/orchestrator/tenant-admin.md +7 -7
  178. package/skills/uipath-platform/references/{resources → orchestrator}/triggers-and-webhooks.md +41 -37
  179. package/skills/uipath-platform/references/{resources → orchestrator}/work-with-storage.md +56 -34
  180. package/skills/uipath-platform/references/uip-commands.md +20 -19
  181. package/skills/uipath-review/SKILL.md +81 -7
  182. package/skills/uipath-review/references/agents/agent-common-issues.md +42 -0
  183. package/skills/uipath-review/references/agents/agent-review-checklist.md +79 -57
  184. package/skills/uipath-review/references/agents/agents-coded-rules.md +160 -0
  185. package/skills/uipath-review/references/agents/agents-common-rules.md +32 -0
  186. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +128 -0
  187. package/skills/uipath-review/references/platform/platform-resources-checklist.md +2 -2
  188. package/skills/uipath-review/references/review-workflow-guide.md +1 -1
  189. package/skills/uipath-review/references/rpa/rpa-review-checklist.md +2 -2
  190. package/skills/uipath-review/references/rule-catalog-workflow.md +90 -0
  191. package/skills/uipath-review/references/rule-format.md +91 -0
  192. package/skills/uipath-rpa/SKILL.md +16 -6
  193. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/CreateEntityRecord.md +149 -0
  194. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/CreateMultipleEntityRecords.md +67 -0
  195. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteEntityRecord.md +44 -0
  196. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteFileFromRecordField.md +56 -0
  197. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteMultipleEntityRecords.md +65 -0
  198. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DownloadFileFromRecordField.md +115 -0
  199. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/GetEntityRecordById.md +50 -0
  200. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/QueryEntityRecords.md +69 -0
  201. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UpdateEntityRecord.md +120 -0
  202. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UpdateMultipleEntityRecords.md +67 -0
  203. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UploadFileToRecordField.md +103 -0
  204. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/guides/data-service-filter-builder-guide.md +461 -0
  205. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/overview.md +355 -0
  206. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AppendRangeX.md +1 -1
  207. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AutoFillX.md +1 -1
  208. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AutoFitX.md +1 -1
  209. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ChangeDataRangeModification.md +1 -1
  210. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ChangePivotTableDataSourceX.md +1 -1
  211. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ClearRangeX.md +1 -1
  212. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CopyPasteRangeX.md +1 -1
  213. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CreatePivotTableXv2.md +1 -1
  214. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CreateTableX.md +1 -1
  215. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteColumnX.md +1 -1
  216. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteRowsX.md +1 -1
  217. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteSheetX.md +1 -1
  218. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DuplicateSheetX.md +1 -1
  219. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExecuteMacroArgumentX.md +1 -1
  220. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExecuteMacroX.md +1 -1
  221. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExportExcelToCsvX.md +1 -1
  222. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FillRangeX.md +1 -1
  223. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FilterPivotTableX.md +1 -1
  224. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FilterX.md +1 -1
  225. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FindFirstLastDataRowX.md +1 -1
  226. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FindReplaceValueX.md +1 -1
  227. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FormatRangeX.md +2 -2
  228. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertColumnX.md +1 -1
  229. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertExcelChartX.md +1 -1
  230. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertRowsX.md +1 -1
  231. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertSheetX.md +1 -1
  232. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InvokeVBAArgumentX.md +1 -1
  233. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InvokeVBAX.md +1 -1
  234. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/LookupX.md +1 -1
  235. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/PivotTableFieldX.md +1 -1
  236. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ProtectSheetX.md +1 -1
  237. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ReadCellFormulaX.md +1 -1
  238. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ReadCellValueX.md +1 -1
  239. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RefreshPivotTableX.md +1 -1
  240. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RemoveDuplicatesX.md +1 -1
  241. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RenameSheetX.md +1 -1
  242. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SaveAsPdfX.md +1 -1
  243. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SaveExcelFileX.md +1 -1
  244. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SortColumnX.md +1 -1
  245. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SortX.md +1 -1
  246. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/UnprotectSheetX.md +1 -1
  247. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/UpdateChartX.md +1 -1
  248. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/VLookupX.md +1 -1
  249. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/WriteCellX.md +1 -1
  250. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/overview.md +2 -2
  251. package/skills/uipath-rpa/references/activity-docs/UiPath.GSuite.Activities/3.8/activities/overview.md +2 -2
  252. package/skills/uipath-rpa/references/activity-docs/UiPath.Mail.Activities/2.8/activities/overview.md +2 -2
  253. package/skills/uipath-rpa/references/activity-docs/UiPath.MicrosoftOffice365.Activities/3.8/activities/SendMailConnections.md +1 -1
  254. package/skills/uipath-rpa/references/activity-docs/UiPath.MicrosoftOffice365.Activities/3.8/activities/overview.md +3 -3
  255. package/skills/uipath-rpa/references/activity-docs/UiPath.Presentations.Activities/2.5/activities/overview.md +2 -2
  256. package/skills/uipath-rpa/references/activity-docs/UiPath.System.Activities/25.10/activities/overview.md +1 -1
  257. package/skills/uipath-rpa/references/activity-docs/UiPath.Word.Activities/2.5/activities/overview.md +2 -2
  258. package/skills/uipath-rpa/references/cli-reference.md +108 -554
  259. package/skills/uipath-rpa/references/coded/coding-guidelines.md +1 -1
  260. package/skills/uipath-rpa/references/coded/operations-guide.md +3 -3
  261. package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +1 -1
  262. package/skills/uipath-rpa/references/connector-capabilities.md +3 -2
  263. package/skills/uipath-rpa/references/debugging.md +43 -36
  264. package/skills/uipath-rpa/references/environment-setup.md +3 -3
  265. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +3 -3
  266. package/skills/uipath-rpa/references/library-authoring-guide.md +226 -0
  267. package/skills/uipath-rpa/references/project-structure-guide.md +43 -0
  268. package/skills/uipath-rpa/references/publishing-guide.md +5 -5
  269. package/skills/uipath-rpa/references/tenant-library-search-guide.md +18 -14
  270. package/skills/uipath-rpa/references/testing-guide.md +6 -6
  271. package/skills/uipath-rpa/references/trigger-pattern-guide.md +2 -2
  272. package/skills/uipath-rpa/references/ui-automation-guide.md +43 -6
  273. package/skills/uipath-rpa/references/uia-configure-target-workflows.md +2 -2
  274. package/skills/uipath-rpa/references/uia-prerequisites.md +1 -1
  275. package/skills/uipath-rpa/references/validation-guide.md +4 -4
  276. package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +4 -1
  277. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +18 -6
  278. package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +304 -0
  279. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +3 -0
  280. package/skills/uipath-solution/SKILL.md +23 -125
  281. package/skills/uipath-solution/references/{operate/activate-and-manage.md → activate-and-manage.md} +1 -1
  282. package/skills/uipath-solution/references/{operate/develop-solution.md → develop-solution.md} +43 -37
  283. package/skills/uipath-solution/references/{operate/pack-and-deploy.md → pack-and-deploy.md} +3 -3
  284. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/intra-solution-references.md +2 -2
  285. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/manual-edits.md +4 -4
  286. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/same-name-across-folders.md +2 -2
  287. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/shared-cloud-resource.md +3 -3
  288. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/virtual-resource.md +4 -4
  289. package/skills/uipath-solution/references/{operate/scenarios.md → scenarios.md} +5 -5
  290. package/skills/uipath-solution/references/{operate/solution-overview.md → solution-overview.md} +3 -3
  291. package/skills/uipath-tasks/SKILL.md +0 -2
  292. package/skills/uipath-test/SKILL.md +26 -7
  293. package/skills/uipath-troubleshoot/agents/triage.md +6 -4
  294. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/overview.md +55 -0
  295. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/add-queue-item-failed.md +58 -0
  296. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/application-launch-failed.md +56 -0
  297. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/browser-open-or-attach-failed.md +59 -0
  298. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/file-operation-failed.md +60 -0
  299. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/foreach-row-failed.md +56 -0
  300. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/image-target-not-found.md +56 -0
  301. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/invoke-code-failed.md +54 -0
  302. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/invoke-workflow-failed.md +58 -0
  303. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/kill-process-failed.md +49 -0
  304. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-activity-configuration-error.md +80 -0
  305. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-activity-timeout.md +61 -0
  306. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-element-interaction-failed.md +61 -0
  307. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-element-not-found.md +64 -0
  308. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +24 -0
  309. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-file-locked.md +142 -0
  310. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-file-not-found.md +140 -0
  311. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-null-reference.md +119 -0
  312. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-sheet-not-found.md +146 -0
  313. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-cell-failures.md +131 -0
  314. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +5 -0
  315. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/investigation_guide.md +1 -0
  316. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/overview.md +16 -0
  317. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/activity-configuration-error.md +42 -0
  318. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/ambiguous-selector.md +131 -0
  319. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +84 -0
  320. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-open-failed.md +46 -0
  321. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/browser-navigation-failed.md +45 -0
  322. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +120 -0
  323. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/disabled-element.md +0 -2
  324. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/element-found-not-actionable.md +43 -0
  325. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/healing-agent-no-license.md +12 -12
  326. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/healing-agent-orch-issues.md +108 -0
  327. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/inject-js-failed.md +41 -0
  328. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +7 -0
  329. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/select-item-no-items.md +37 -0
  330. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-manual.md +2 -0
  331. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/timeout-issue.md +2 -2
  332. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/verify-execution-failure.md +120 -0
  333. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/wrong-target-application.md +41 -0
  334. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +12 -0
  335. package/skills/uipath-troubleshoot/references/products/agents/playbooks/guardrail-violation.md +111 -0
  336. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-connection-disabled.md +90 -0
  337. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-invalid-credentials.md +123 -0
  338. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-invalid-element-instance.md +96 -0
  339. package/skills/uipath-troubleshoot/references/products/agents/playbooks/llm-insufficient-information.md +1 -1
  340. package/skills/uipath-troubleshoot/references/products/agents/summary.md +4 -0
  341. package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +7 -7
  342. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-no-host.md +3 -1
  343. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -0
  344. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-exit-code-0x40010004.md +104 -0
  345. package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +1 -0
  346. package/skills/uipath-troubleshoot/references/summary.md +10 -1
  347. package/version-manifest.json +2 -2
  348. package/skills/uipath-ixp/SKILL.md +0 -84
  349. package/skills/uipath-ixp/references/cli-reference.md +0 -113
  350. package/skills/uipath-ixp/references/improve-prompts-guide.md +0 -283
  351. package/skills/uipath-ixp/references/label-documents-guide.md +0 -175
  352. package/skills/uipath-ixp/references/project-setup-guide.md +0 -90
  353. package/skills/uipath-maestro-case/references/plugins/edges/impl-json.md +0 -152
  354. package/skills/uipath-maestro-case/references/plugins/edges/planning.md +0 -93
  355. /package/skills/{uipath-solution/references/design → uipath-planner/references}/package-selection-guide.md +0 -0
  356. /package/skills/{uipath-solution/references/design → uipath-planner/references}/pdd-analysis-guide.md +0 -0
  357. /package/skills/uipath-solution/references/{operate/scenarios → scenarios}/failure-modes.md +0 -0
@@ -21,7 +21,7 @@ Scaffold a new agent project at the given path.
21
21
  uip agent init "<AGENT_NAME>" --output json
22
22
  ```
23
23
 
24
- The `<path>` argument is relative or absolute; the command can run from any directory. Creates agent.json, entry-points.json, project.uiproj, and default eval directories inside the target path. Does **not** create `.agent-builder/` — that is generated by `uip agent migrate`.
24
+ The `<path>` argument is relative or absolute; the command can run from any directory. Creates agent.json, entry-points.json, project.uiproj, and default eval directories inside the target path. Run `uip agent refresh` after editing to regenerate `entry-points.json` and `bindings_v2.json`.
25
25
 
26
26
  **Options:**
27
27
  - `--model <model>` — LLM model to use (default: `gpt-4o-2024-11-20`). This default is stale; override it post-init — discover current tenant models with `uip agent model list` and select per [model-selection-guide.md](model-selection-guide.md). Pass `--model` at init or edit `settings.model` after.
@@ -78,16 +78,17 @@ uip agent validate [path] --output json
78
78
  1. Checks `agent.json` structure: `version === "1.1.0"`, type, UUID, settings (including `mode`), messages, contentTokens consistency.
79
79
  2. Verifies schema sync between `agent.json` and `entry-points.json` (properties + required[]).
80
80
  3. Validates `project.uiproj` (`ProjectType === "Agent"`).
81
- 4. Runs pending migrations **in memory only** — reports `MigrationPending: true` if migration is needed, but never writes to disk.
82
- 5. Validates `agent.json` against the latest schema, eval-sets, evaluators (category/type constraints), and counts resources.
81
+ 4. Storage-version gate — fails with `AgentValidationOutdated` if `storageVersion` is not at the latest. Run `uip agent refresh` to migrate.
82
+ 5. Validates `agent.json` against the latest Zod schema, eval-sets, evaluators (category/type constraints), and counts resources.
83
+ 6. Dry-run derived-files generation — compares generated `entry-points.json` and `bindings_v2.json` against on-disk files. Fails with `AgentValidationDrift` if they are out of sync. Run `uip agent refresh` to regenerate.
83
84
 
84
- **Does NOT write files or generate `.agent-builder/`.** Run `uip agent migrate` after validate to write migrated files and regenerate `.agent-builder/`.
85
+ **Does NOT write files.** Strict read-only. Run `uip agent refresh` before validate to apply migrations and regenerate derived files.
85
86
 
86
- **With `--inline-in-flow`:** Steps 2 and 3 are skipped.
87
+ **With `--inline-in-flow`:** Steps 2, 3, and entry-points drift check are skipped.
87
88
 
88
89
  **Success output:**
89
90
  ```json
90
- { "Result": "Success", "Code": "AgentValidation", "Data": { "Status": "Valid", "Model": "...", "StorageVersion": "50.0.0", "MigrationPending": false, "Validated": { "agent": true, "resources": 2, "evalSets": 1, "evaluators": 2 } } }
91
+ { "Result": "Success", "Code": "AgentValidation", "Data": { "Status": "Valid", "Model": "...", "StorageVersion": "50.0.0", "Validated": { "agent": true, "resources": 2, "evalSets": 1, "evaluators": 2 } } }
91
92
  ```
92
93
 
93
94
  **Failure output:**
@@ -95,26 +96,27 @@ uip agent validate [path] --output json
95
96
  { "Result": "Failure", "Code": "AgentValidationFailed", "Message": "Validation failed with N error(s)", "Data": { "Errors": ["agent.json → settings.mode: missing — must be \"standard\" or \"advanced\""] } }
96
97
  ```
97
98
 
98
- ### `uip agent migrate`
99
+ ### `uip agent refresh`
99
100
 
100
- Applies pending schema migrations and regenerates `.agent-builder/` files. Runs the same checks as `uip agent validate` before writing anything — files are only written if all checks pass.
101
+ Applies pending schema migrations and regenerates derived files (`entry-points.json`, `bindings_v2.json`). Runs static validation before writing anything — files are only written if all checks pass.
101
102
 
102
103
  ```bash
103
- uip agent migrate [path] --output json
104
+ uip agent refresh [path] --output json
104
105
  ```
105
106
 
106
107
  **What it does:**
107
- 1. Runs all static validation checks (same as `uip agent validate`).
108
+ 1. Runs all static validation checks.
108
109
  2. Writes migrated `agent.json` (and related files) to disk if migration is needed.
109
- 3. Regenerates `.agent-builder/` files (agent.json with inlined resources, entry-points.json, bindings.json) from each `resources/{ResourceName}/resource.json`.
110
+ 3. Regenerates `entry-points.json` from `agent.json` inputSchema/outputSchema (preserving the existing `uniqueId`).
111
+ 4. Regenerates `bindings_v2.json` from `resources/{ResourceName}/resource.json` files, features, and guardrail escalations.
110
112
 
111
- **With `--inline-in-flow`:** Skips `entry-points.json`/`project.uiproj` checks. `.agent-builder/agent.json` and `bindings.json` are still generated, and agent capability bindings are merged into the parent flow project's `bindings_v2.json`.
113
+ **With `--inline-in-flow`:** Skips `entry-points.json`/`project.uiproj` checks. Agent capability bindings are merged into the parent flow project's `bindings_v2.json`.
112
114
 
113
- **Workflow:** run `uip agent validate` to check, then `uip agent migrate` to apply writes and regenerate `.agent-builder/`. For routine edits with no schema migration pending, `migrate` is still needed to keep `.agent-builder/` in sync.
115
+ **Workflow:** run `uip agent refresh` to apply writes and regenerate derived files, then `uip agent validate` to verify the project is clean. For routine edits with no schema migration pending, refresh is still needed to keep `entry-points.json` and `bindings_v2.json` in sync.
114
116
 
115
117
  ### `uip agent memory`
116
118
 
117
- Manage low-code agent memory space features and seed items. These commands write `features/{FeatureName}/feature.json` and update `.agent-builder/agent.json`; run validate and migrate afterwards to regenerate bindings.
119
+ Manage low-code agent memory space features and seed items. These commands write `features/{FeatureName}/feature.json`; run refresh and validate afterwards to regenerate bindings.
118
120
 
119
121
  ```bash
120
122
  uip agent memory add SupportRecall \
@@ -138,6 +140,16 @@ uip agent memory item remove SupportRecall customer-tier --path "<AGENT_PROJECT_
138
140
 
139
141
  For discovery, retrieval settings, memory item types, and troubleshooting, see [capabilities/memory/memory.md](capabilities/memory/memory.md).
140
142
 
143
+ ### `uip agent debug`
144
+
145
+ Run the agent end-to-end on Studio Web and stream the result. **Uploads the enclosing solution** to Studio Web, then runs it — one step, no separate `uip solution upload`, so the debugged copy always matches local. **Executes the agent for real** — confirm with the user first (per [critical-rules.md](critical-rules.md) Rule 8: consent before upload/publish/deploy).
146
+
147
+ ```bash
148
+ uip agent debug <AGENT_PROJECT_DIR> --inputs '{"input":"..."}' --output json
149
+ ```
150
+
151
+ Returns `Code: "AgentDebug"` with `Data.State`, `Data.Output`, and `Data.TraceId`. A `Faulted` run returns `Result: "Failure"` (exit 1); inspect it with `uip traces spans get <TraceId> --output json`. Full options and reporting in [debug.md](debug.md).
152
+
141
153
  ## Solution Commands
142
154
 
143
155
  ### Create Solution
@@ -148,10 +160,16 @@ uip solution init "<SOLUTION_NAME>" --output json
148
160
 
149
161
  ### Register Project with Solution
150
162
 
151
- `uip agent init` **auto-registers** the project with the parent `.uipx` when run from inside a solution directory. Verify via `Data.SolutionRegistration.Status` in the `agent init` response — `Registered` or `AlreadyRegistered` means you are done. Use `uip solution project add` only as a fallback when `Status` is `Skipped` or `Failed` (e.g., `init` was run outside the solution dir, or the `.uipx` write failed).
163
+ `uip agent init` **auto-registers** the project with the parent `.uipx` when run from inside a solution directory (pass `--skip-solution-registration` to skip auto-registration). Verify via `Data.SolutionRegistration.Status` in the `agent init` response. The full set of statuses:
164
+
165
+ - `Registered` / `AlreadyRegistered` — registered (added now / already present). **You are done.**
166
+ - `OptedOut` — `--skip-solution-registration` was passed; registration was intentionally skipped. No action needed (register later with the fallback if you change your mind).
167
+ - `NotInSolution` — no parent `.uipx` was found (`init` ran outside a solution). Use the fallback if you want it in a solution.
168
+ - `Skipped` — a candidate solution was found but registration wasn't safe (e.g. multiple `.uipx`, or project outside the solution dir). Resolve, then use the fallback.
169
+ - `Failed` — registration was attempted but errored (`.uipx` read/parse/write). Use the fallback.
152
170
 
153
171
  ```bash
154
- # Fallback only — when agent init's Data.SolutionRegistration.Status is Skipped / Failed.
172
+ # Fallback — when Status is NotInSolution / Skipped / Failed (not needed for OptedOut).
155
173
  uip solution project add "<AGENT_PROJECT_DIR>" [solutionFile] --output json
156
174
  ```
157
175
 
@@ -217,16 +235,16 @@ uip solution bundle . -d ./dist --output json
217
235
 
218
236
  ## Resource Discovery
219
237
 
220
- `uip solution resource list` queries the Resource Catalog Service for all resources visible to the tenant and returns a compact JSON list. Use it as the first step of any tool-authoring flow — it replaces `uip or folders list` and `uip or processes list`, and covers Action Center apps and Context Grounding indexes too.
238
+ `uip solution resources list` queries the Resource Catalog Service for all resources visible to the tenant and returns a compact JSON list. Use it as the first step of any tool-authoring flow — it replaces `uip or folders list` and `uip or processes list`, and covers Action Center apps and Context Grounding indexes too.
221
239
 
222
240
  Two supported invocations:
223
241
 
224
242
  ```bash
225
243
  # Local (in-solution): --kind and --search not allowed.
226
- uip solution resource list [solutionPath] --source local --output json
244
+ uip solution resources list --solution-folder <SOLUTION_DIR> --source local --output json
227
245
 
228
246
  # Remote (Orchestrator / RCS): --kind and --search supported.
229
- uip solution resource list [solutionPath] --source remote [--kind <kind>] [--search <term>] --output json
247
+ uip solution resources list --solution-folder <SOLUTION_DIR> --source remote [--kind <kind>] [--search <term>] --output json
230
248
  ```
231
249
 
232
250
  **Flags:**
@@ -264,7 +282,7 @@ uip solution resource list [solutionPath] --source remote [--kind <kind>] [--sea
264
282
  | `Connection` | `uipath-<connector-key>` | Integration Service connection — the `Type` IS the connector key |
265
283
  | `Bucket` | `orchestratorBucket` | Orchestrator storage bucket |
266
284
 
267
- **What `resource list` does not return:** argument schemas, action schemas, data source types, authentication details, package versions, or feed ids. For `Process` and `Index` resources, follow up with `uip solution resource get <KEY> --output json` and read `Data.spec` for the full configuration. For other kinds (`App`, `Connection`, `Bucket`), see the kind-specific capability files. `resource list` is the identification step — it tells you *that* a resource exists and *where*.
285
+ **What `resources list` does not return:** argument schemas, action schemas, data source types, authentication details, package versions, or feed ids. For `Process` and `Index` resources, follow up with `uip solution resources get <KEY> --output json` and read `Data.spec` for the full configuration. For other kinds (`App`, `Connection`, `Bucket`), see the kind-specific capability files. `resources list` is the identification step — it tells you *that* a resource exists and *where*.
268
286
 
269
287
  ## End-to-End Example — New Standalone Agent
270
288
 
@@ -297,7 +315,8 @@ uip solution init "<SOLUTION_NAME>" --output json
297
315
  # `Data.SolutionRegistration.Status` in the response (`Registered` or
298
316
  # `AlreadyRegistered`).
299
317
  uip agent init "<SOLUTION_NAME>/<AGENT_NAME>" --output json
300
- # (fallback only — run if Data.SolutionRegistration.Status is Skipped / Failed)
318
+ # (fallback only — run if Data.SolutionRegistration.Status is `NotInSolution` / `Skipped` / `Failed`;
319
+ # `OptedOut` means `--skip-solution-registration` was passed and registration was skipped on purpose)
301
320
  # uip solution project add "<SOLUTION_NAME>/<AGENT_NAME>" --output json
302
321
  ```
303
322
 
@@ -316,8 +335,8 @@ Read [agent-definition.md](agent-definition.md) for the full schema.
316
335
 
317
336
  1. Add fields to `agent.json` → `inputSchema` and `outputSchema`
318
337
  2. Mirror in `entry-points.json`
319
- 3. Validate: `uip agent validate "<SOLUTION_NAME>/<AGENT_NAME>" --output json`
320
- 4. Migrate (writes files + regenerates `.agent-builder/`): `uip agent migrate "<SOLUTION_NAME>/<AGENT_NAME>" --output json`
338
+ 3. Refresh (writes migrated files + regenerates `entry-points.json` and `bindings_v2.json`): `uip agent refresh "<SOLUTION_NAME>/<AGENT_NAME>" --output json`
339
+ 4. Validate: `uip agent validate "<SOLUTION_NAME>/<AGENT_NAME>" --output json`
321
340
 
322
341
  ### Step 5 — Publish to Studio Web or deploy to Orchestrator
323
342
 
@@ -386,18 +405,19 @@ All solution lifecycle operations go through `uip solution` CLI. Never call Auto
386
405
  | Create solution | `uip solution init "<NAME>" --output json` | Any directory | — |
387
406
  | Scaffold agent | `uip agent init "<NAME>" --output json` | Solution directory | — |
388
407
  | Scaffold inline agent | `uip agent init "<FLOW_PROJECT_DIR>" --inline-in-flow --output json` | Any directory | — |
389
- | Verify project registration | Check `Data.SolutionRegistration.Status` from `agent init` response (`Registered` / `AlreadyRegistered` = done) | Solution directory | — |
390
- | Register project (fallback) | `uip solution project add "<PATH>" --output json` — only when `agent init` returned `Skipped` / `Failed` | Solution directory | — |
391
- | Validate (read-only) | `uip agent validate [path] --output json` | Agent dir or any with path | — |
392
- | Migrate + regenerate builder | `uip agent migrate [path] --output json` | Agent dir or any with path | — |
393
- | Add memory space feature | `uip agent memory add <FeatureName> --memory-space <Name> --folder-path <Folder> --path <AgentDir> --output json` | Any directory | Writes `features/<FeatureName>/feature.json`; run validate/migrate after |
408
+ | Verify project registration | Check `Data.SolutionRegistration.Status` from `agent init` response (`Registered` / `AlreadyRegistered` = done; `OptedOut` = `--skip-solution-registration` passed) | Solution directory | — |
409
+ | Register project (fallback) | `uip solution project add "<PATH>" --output json` — when `agent init` returned `NotInSolution` / `Skipped` / `Failed` | Solution directory | — |
410
+ | Refresh + regenerate derived files | `uip agent refresh [path] --output json` | Agent dir or any with path | — |
411
+ | Validate (strict read-only) | `uip agent validate [path] --output json` | Agent dir or any with path | — |
412
+ | Debug / run end-to-end on Studio Web | `uip agent debug <AgentDir> --inputs '{...}' --output json` | Agent dir | `Successful`, `Faulted`, `Stopped` |
413
+ | Add memory space feature | `uip agent memory add <FeatureName> --memory-space <Name> --folder-path <Folder> --path <AgentDir> --output json` | Any directory | Writes `features/<FeatureName>/feature.json`; run refresh/validate after |
394
414
  | Seed memory item | `uip agent memory item add <FeatureName> <key> <value> --memory-type episodic --feedback-id <FEEDBACK_ID> --path <AgentDir> --output json` | Any directory | Updates existing item with same key |
395
415
  | List guardrail validators | `uip agent guardrails list --output json` | Any directory | — |
396
- | Discover resources | `uip solution resource list --kind <Kind> --source remote [--search <term>] --output json` | Solution directory | — |
397
- | Refresh resources | `uip solution resource refresh --output json` | Solution directory | — |
398
- | Add one resource (local stub or remote import) | `uip solution resource add --source local\|remote --kind <Kind> --name <NAME> [--folder-path <FOLDER>] --output json` | Solution directory | Idempotent on `(kind, name, folder)` for local, on key for remote |
399
- | Remove one resource by key | `uip solution resource remove <KEY> --output json` | Solution directory | Offline; doesn't touch `bindings_v2.json` |
400
- | Edit one resource's spec | `uip solution resource edit <KEY> --patch '{...}' --output json` | Solution directory | Only command that mutates an existing resource; `refresh` never overwrites. Unknown/reference/read-only props silently ignored. JSON is the only input — types preserved verbatim |
416
+ | Discover resources | `uip solution resources list --kind <Kind> --source remote [--search <term>] --output json` | Solution directory | — |
417
+ | Refresh resources | `uip solution resources refresh --output json` | Solution directory | — |
418
+ | Add one resource (local stub or remote import) | `uip solution resources add --source local\|remote --kind <Kind> --name <NAME> [--folder-path <FOLDER>] --output json` | Solution directory | Idempotent on `(kind, name, folder)` for local, on key for remote |
419
+ | Remove one resource by key | `uip solution resources remove <KEY> --output json` | Solution directory | Offline; doesn't touch `bindings_v2.json` |
420
+ | Edit one resource's spec | `uip solution resources edit <KEY> --patch '{...}' --output json` | Solution directory | Only command that mutates an existing resource; `refresh` never overwrites. Unknown/reference/read-only props silently ignored. JSON is the only input — types preserved verbatim |
401
421
  | Upload to Studio Web | `uip solution upload . --output json` | Solution directory | — |
402
422
  | Pack | `uip solution pack . ./dist -v "1.0.0" --output json` | Solution directory | — |
403
423
  | Publish | `uip solution publish ./dist/<PKG>.zip --output json` | Any directory | — |
@@ -1,6 +1,6 @@
1
1
  # Solution Resources Internals
2
2
 
3
- Solution architecture, UUID cross-references, bindings, debug_overwrites, and `uip solution resource refresh` mechanics. Capability-agnostic — every capability that produces solution-level files relies on the patterns documented here.
3
+ Solution architecture, UUID cross-references, bindings, debug_overwrites, and `uip solution resources refresh` mechanics. Capability-agnostic — every capability that produces solution-level files relies on the patterns documented here.
4
4
 
5
5
  ## Solution Architecture
6
6
 
@@ -130,11 +130,11 @@ bucket/orchestratorBucket/... │
130
130
 
131
131
  ## Bindings
132
132
 
133
- `uip agent migrate` reads each `resources/{Name}/resource.json` and `features/{Name}/feature.json`, then writes one binding entry per external dependency into `bindings_v2.json`. Every binding carries `name`; **Process, Index, App, and MemorySpace bindings also carry `folderPath`** propagated verbatim from the agent-level resource or feature. Connection bindings are exempt (bound by `connection.id`). `uip agent validate` performs the same read-only check without writing — it reports `MigrationPending` if the file is behind.
133
+ `uip agent refresh` reads each `resources/{Name}/resource.json` and `features/{Name}/feature.json`, then writes one binding entry per external dependency into `bindings_v2.json`. Every binding carries `name`; **Process, Index, App, and MemorySpace bindings also carry `folderPath`** propagated verbatim from the agent-level resource or feature. Connection bindings are exempt (bound by `connection.id`). `uip agent validate` performs the same read-only check without writing — it fails with `AgentValidationOutdated` if the file is behind.
134
134
 
135
135
  | Binding kind | `name` source | `folderPath` source | Notes |
136
136
  |---|---|---|---|
137
- | `process` (local or external) | `properties.processName` | `properties.folderPath` (literal `Folder` from `uip solution resource list` — typically `"solution_folder"` for local, Orchestrator path for external) | One per process tool |
137
+ | `process` (local or external) | `properties.processName` | `properties.folderPath` (literal `Folder` from `uip solution resources list` — typically `"solution_folder"` for local, Orchestrator path for external) | One per process tool |
138
138
  | `index` | `indexName` | top-level `folderPath` (literal `Folder`) | StorageBucket-backed only |
139
139
  | `app` (escalation) | `channel.properties.appName` | `channel.properties.folderName` (literal `Folder`, translated to binding `folderPath`) | One per Action Center channel |
140
140
  | `app` (guardrail escalation) | `action.app.name` | `action.app.folderName` (literal `Folder`, translated to binding `folderPath`) | One per `$actionType: "escalate"` guardrail action |
@@ -155,7 +155,7 @@ bucket/orchestratorBucket/... │
155
155
  ```
156
156
 
157
157
  ```jsonc
158
- // External tool — literal Folder from `uip solution resource list`
158
+ // External tool — literal Folder from `uip solution resources list`
159
159
  {
160
160
  "resource": "process",
161
161
  "key": "TestRPA",
@@ -220,9 +220,9 @@ bucket/orchestratorBucket/... │
220
220
 
221
221
  The `solutionsSupport: "true"` metadata flag signals to the deployment engine that this resource participates in the solution deployment.
222
222
 
223
- > **Note 1: `solutionsSupport` is a stringified boolean** (`"true"`, not `true`). `uip agent migrate` and `uip solution resource refresh` emit the string form — preserve it verbatim when round-tripping. Re-typing it as a JSON boolean breaks downstream parsing.
223
+ > **Note 1: `solutionsSupport` is a stringified boolean** (`"true"`, not `true`). `uip agent refresh` and `uip solution resources refresh` emit the string form — preserve it verbatim when round-tripping. Re-typing it as a JSON boolean breaks downstream parsing.
224
224
  >
225
- > **Note 2: do not hand-edit `bindings_v2.json`.** The binding's `folderPath` is generated from the agent-level `resource.json` or memory feature file. Edit the resource.json, or use `uip agent memory` for memory features, then re-run `uip agent migrate`; never patch the binding directly. See [critical-rules.md](critical-rules.md) Anti-pattern 20 and 24.
225
+ > **Note 2: do not hand-edit `bindings_v2.json`.** The binding's `folderPath` is generated from the agent-level `resource.json` or memory feature file. Edit the resource.json, or use `uip agent memory` for memory features, then re-run `uip agent refresh`; never patch the binding directly. See [critical-rules.md](critical-rules.md) Anti-pattern 20 and 24.
226
226
 
227
227
  ## Debug Overwrites
228
228
 
@@ -263,14 +263,14 @@ For capability-specific debug_overwrites entries (process / connection / index /
263
263
  ## Refresh Mechanics
264
264
 
265
265
  ```bash
266
- uip solution resource refresh [solutionPath] --output json
266
+ uip solution resources refresh [solutionPath] --output json
267
267
  ```
268
268
 
269
269
  Re-scans all projects in the solution and syncs resource declarations from their `bindings_v2.json` files. For each external binding, refresh uses the **joint key `(name, kind, folderPath)`** read from the binding to look up the matching resource in the appropriate catalog — Resource Catalog Service for `Process`, `App`, and `MemorySpace` bindings, ECS for `Index` bindings, the local IS connection cache for `Connection` bindings. The folder dimension disambiguates resources that share a name across folders. If no match is found, refresh creates a virtual placeholder in the solution and warns.
270
270
 
271
271
  Solution-internal bindings (`folderPath: "solution_folder"`) skip the RCS lookup — they are resolved at deploy time against the solution folder.
272
272
 
273
- **Run this after `uip agent migrate`** whenever external tools, memory spaces, index contexts, app escalations, or connections have been added or changed.
273
+ **Run this after `uip agent refresh`** whenever external tools, memory spaces, index contexts, app escalations, or connections have been added or changed.
274
274
 
275
275
  Handled kinds and what refresh produces:
276
276
 
@@ -1,13 +1,11 @@
1
1
  ---
2
2
  name: uipath-api-workflow
3
- description: "[PREVIEW] UiPath API Workflow assistant — author, run, package, publish JSON workflows executed by `uip api-workflow run`. Covers logical/hierarchical structure (Sequence, Assign, JavaScript, If with #Wrapper/#Then/#Else, ForEach, DoWhile, Break, TryCatch, Wait, Response — including nested patterns) AND HTTP / Integration Service connector activities (Gmail, Outlook, GitHub, Slack, etc.) authored via `uip api-workflow registry resolve` + `stub`. Triggers on prompts about UiPath API workflows, project type \"Api\", JSON workflow files containing `document.dsl`/`do[]`, any of those activity types, or fetching data from a public/vendor API. Uses `uip api-workflow run` for local execution and `uip solution pack`/`publish` for deployment. For .flow Maestro→uipath-maestro-flow. For .xaml/coded RPA→uipath-rpa. For coded agents→uipath-agents. For Coded Apps→uipath-coded-apps."
3
+ description: "UiPath API Workflow assistant — author, run, package, publish JSON workflows executed by `uip api-workflow run`. Covers logical/hierarchical structure (Sequence, Assign, JavaScript, If with #Wrapper/#Then/#Else, ForEach, DoWhile, Break, TryCatch, Wait, Response — including nested patterns) AND HTTP / Integration Service connector activities (Gmail, Outlook, GitHub, Slack, etc.) authored via `uip api-workflow registry resolve` + `stub`. Triggers on prompts about UiPath API workflows, project type \"Api\", JSON workflow files containing `document.dsl`/`do[]`, any of those activity types, or fetching data from a public/vendor API. Uses `uip api-workflow run` for local execution and `uip solution pack`/`publish` for deployment. For .flow Maestro→uipath-maestro-flow. For .xaml/coded RPA→uipath-rpa. For coded agents→uipath-agents. For Coded Apps→uipath-coded-apps."
4
4
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep
5
5
  ---
6
6
 
7
7
  # UiPath API Workflow Assistant
8
8
 
9
- > **Preview** — this skill is in preview. Behavior, file shapes, and rules may change as the underlying executor and StudioWeb roundtrip story evolve.
10
-
11
9
  Build, run, and publish UiPath API Workflows — JSON files conforming to the CNCF Serverless Workflow DSL 1.0.0 with UiPath activity-type extensions. Executed by `@uipath/api-workflow-executor` via `uip api-workflow run`. Packaged as `Type: "Api"` projects via `uip solution pack`.
12
10
 
13
11
  ## When to Use This Skill
@@ -25,17 +23,19 @@ Build, run, and publish UiPath API Workflows — JSON files conforming to the CN
25
23
 
26
24
  Do NOT use for: `.flow` Maestro flows (→ `uipath-maestro-flow`), `.xaml` / coded RPA (→ `uipath-rpa`), coded agents (→ `uipath-agents`), Coded Web Apps (→ `uipath-coded-apps`).
27
25
 
28
- **Connector activities come from the registry, not from guessing.** HTTP Request and Integration Service Connector activities (Gmail Send Email, Outlook Get Newest Email, etc.) need StudioWeb-side editor metadata (`metadata.uiPathActivityTypeId` + `metadata.configuration`) to render correctly in the designer. The data is NOT in `uip is activities list`. Use `uip api-workflow registry resolve` + `uip api-workflow registry stub`: `resolve` searches the StudioWeb TypeCache (`projectType=Api`) for candidate GUIDs; `stub` combines the TypeCache entry with the Integration Service Elements schema (full endpoint path, request/response fields, multipart signal) and emits a ready-to-paste activity object — picking Http kind (`UiPath.Http`) or IntSvc kind (`UiPath.IntSvc`) automatically, building `metadata.configuration`, computing the slot and export-bucket keys, and declaring `multipartParameters` when needed. Follow the flow in [references/connector-activity-discovery.md](references/connector-activity-discovery.md). **NEVER invent a `uiPathActivityTypeId` or hand-author the configuration blob** — both come from the stub output.
29
-
30
26
  ## Core Principles
31
27
 
32
28
  1. **Know before you write.** Read the existing workflow file before editing. Read an example template before creating from scratch.
33
29
  2. **Start minimal, iterate to correct.** Add one activity at a time. Run with `--no-auth --output json` after each addition. Fix what breaks. Repeat.
34
- 3. **Validate before running.** `uip api-workflow validate <Workflow.json>` is the closure step for every authoring session. It performs static checks (JSON Schema + semantic) without touching the network — catching malformed JSON, unknown `activityType` values, missing per-activity required keys (e.g. `If` without `do`+`switch`, `Assign` without `set`, `Connector` without `metadata.configuration`/`essentialConfiguration`), bad `evaluate.language`/`evaluate.mode`, and duplicate/empty workflow variables. Use it as a fast pre-flight; `uip api-workflow run` is the runtime validator that catches what static analysis can't (live HTTP calls, expression evaluation, connection state).
30
+ 3. **Validate before running.** `uip api-workflow validate` is the offline static pre-flight (autonomous); `uip api-workflow run` is the runtime validator that catches what static analysis can't (live HTTP, expression evaluation, connection state) and needs user consent. See rules 20–21.
35
31
  4. **Fix errors by category.** Triage: Structure > Expression > Activity Config > Logic. Higher-category fixes often resolve lower-category errors automatically.
36
32
 
37
33
  ## Critical Rules
38
34
 
35
+ > **Rule 0 — Escalate big design forks before you build (highest priority, read first).** When the happy path doesn't work out of the box and the resolution is a judgment call the user would reasonably want to own, STOP and ask before committing to a branch. Present the concrete options with their trade-offs and a recommended default; proceed only on the user's answer. Triggers (non-exhaustive): no valid connection for a required activity (rule 16); no curated activity exists and the choice is generic activity vs. raw Http kind vs. a different connector; the requested operation isn't exposed by any resolvable activity and the fallback is a hand-built HTTP call against an undocumented endpoint; an input the prompt assumed is missing and the alternatives are placeholder, hardcoded value, or new workflow input; the prompt is satisfiable by structurally different workflows (single connector call vs. ForEach over a list). This does NOT cover mechanical choices with an obvious answer (variable names, activity key suffixes, export-pattern selection) — decide those and move on. Reserve escalation for forks where guessing wrong wastes work or ships something the user didn't intend.
36
+ >
37
+ > **Ask the fork BEFORE branch-specific research, not after.** Once you spot a structural fork, do only the shared work needed to surface the options (the cheap `resolve` that proves no curated activity exists, the `connections list`/`ping` that proves no connection works), then ask. Do NOT pre-research every branch — stubbing each candidate activity, describing resources, drafting alternative workflow shapes — so the user can "pick from finished work." The user picks one branch; deep work on the others is thrown away. Sequence: detect fork → minimal shared discovery → ask → then research and build only the chosen branch.
38
+
39
39
  1. **Workflow file is JSON, not YAML.** Top-level keys: `document` (with `dsl: "1.0.0"`), `evaluate` (`language: "javascript"`, `mode: "strict"`), `do` (one root sequence — named `Sequence_1` in the template skeleton, but the literal key may differ in existing workflows; always read the actual key from the file before editing — containing `WorkflowStart` + user activities). See [references/workflow-file-format.md](references/workflow-file-format.md).
40
40
  2. **`WorkflowStart` is always the first activity** inside the root sequence's `do` array. It hydrates variable defaults into `$context.variables` and forwards inputs to `$input`. Never remove, rename, or modify it. `isTransparent: true` (only `WorkflowStart` uses `true`).
41
41
  3. **Every activity is a single-key object** wrapped in the `do` array: `{ "<ActivityKey>": { ...activity body... } }`. Activity keys must be **globally unique** across the whole workflow — including `#Wrapper`, `#Then`, `#Else`, `#Body` suffixes.
@@ -63,24 +63,15 @@ Do NOT use for: `.flow` Maestro flows (→ `uipath-maestro-flow`), `.xaml` / cod
63
63
  - Either `"${ { ... } }"` (single-brace, expression-of-object-literal) or `"${{ ... }}"` (double-brace, object-literal-expression form) is valid — both evaluate to the same JS object. Pick one and stay consistent within a workflow.
64
64
  - For single-value responses (returning one variable or one expression), the simple form is fine: `"response": "${$context.outputs.Javascript_1}"` or `"response": "${'done'}"`.
65
65
  - **On-disk is authoritative.** Even with the single-expression workaround, every StudioWeb designer save can re-trigger normalization passes that may corrupt the Response shape. After any designer roundtrip, re-validate with `uip api-workflow run --no-auth` and re-apply the workaround if needed. Until SW-28452 ships a fix, treat the file on disk as truth, not what the designer renders.
66
- 16. **Connector activities (Http kind AND IntSvc kind) are produced by `uip api-workflow registry resolve` + `stub`, gated by a connection ping for vendor activities.** The `stub` command combines TypeCache lookup (GUID + `InstanceParameters`) with Integration Service Elements metadata (full path, request/response fields, multipart signal) and emits the activity object — with `unifiedTypesCompatible: true` and `savedJitInputFieldId` so StudioWeb renders the **unified activity card** (the one on the current activity picker). Discovery flow:
67
- 1. **Resolve** — `uip api-workflow registry resolve "<keyword>" --output json`. Returns candidates with `uiPathActivityTypeId`, `displayName`, `connectorKey`, `objectName`, `httpMethod`, `activityType`. Pick the right GUID by `displayName` / `connectorKey` (filter by connector name when the operation name is ambiguous — e.g. "gmail" vs "outlook" for "send email").
68
- 2. **(IntSvc kind / vendor only) Verify a working connection.** `uip is connections list <connector-key> --output json` → pick `Id`. `uip is connections ping <uuid>` is **REQUIRED** — listing-state and runtime-state diverge (orphaned upstream element, expired OAuth, wrong tenant). On `ConnectionNotEnabled` / 404 `"Connection […] is invalid or you do not have access to it"`, run the unfiltered fallback `uip is connections list --output json` and search for a different `Id` whose `ConnectorKey` matches. Re-ping. Abort only when no UUID for that connector pings cleanly. NEVER author against a connection that hasn't pinged — it WILL 401 in cloud.
69
- 3. **Stub** — `uip api-workflow registry stub <activity-type-id> [--connection-id <uuid>] [--inputs '<json>'] --output json`. Returns: `Activity` (single-key object — drop directly into the root sequence's `do` array), `Kind` (`"Http"` or `"IntSvc"`), `SlotKey` (the activity key in the `do` array, e.g. `GetNewestEmail_1`), `ExportBucketKey` (what `export.as` writes AND what `$context.outputs.<X>` reads as, e.g. `getNewestEmail_1`, `http_request_1`, `ListEmails_1`), `ResponseFields` (downstream binding targets), `Warnings`. The CLI builds `metadata.configuration`, picks Http kind vs IntSvc kind from `connectorKey`, computes both keys, hub-prefixes the endpoint when IS Elements requires it, and declares `multipartParameters` for multipart operations. NEVER hand-author `metadata.configuration`, invent a `uiPathActivityTypeId`, or reconstruct either key from `objectName` — use what the stub returned. `--inputs` values are passed through verbatim — pass bare strings for literals, `${...}` for references (see field-shape rule (b) below).
70
- 4. **Required-field cross-check — MANDATORY after every stub call.** The stub drops `required: true` request fields. Run `uip is resources describe <connector-key> <object-name> --operation <op> --connection-id <uuid> --output json` (or parse `metadata.configuration.optionalConfiguration.fieldsContainer.inputFields` from the stub's own output) and confirm every `required: true` field appears in the corresponding `queryParameters` / `pathParameters` / `bodyParameters` block. Verified case: Outlook `getNewestEmail` requires `parentFolderId` (`fieldLocation: "query"`); the stub returns `queryParameters: {}` unless that field was passed via `--inputs`. Re-stub with `--inputs '{"<field>":"<value>"}'` or hand-edit the activity. Skipping this check is the second-most-common cause of "renders fine, runs fine, fails in cloud" connector activities (see [troubleshooting.md](references/troubleshooting.md#required-request-field-dropped-by-registry-stub)).
71
- 5. **Kind-specific finalization.**
72
- - **Http kind** (HTTP Request, `connectorKey === uipath-uipath-http`): the stub leaves `<REPLACE_WITH_TARGET_URL>` in `bodyParameters.url` (unless passed via `--inputs`). Replace with the target URL (literal or `${$workflow.input.<name>}`). `connectionId: "ImplicitConnection"` is fine for inline-credential calls. See the verified template at [assets/templates/connector-call-example.json](assets/templates/connector-call-example.json) (a real stub-generated workflow that fetches catfacts).
73
- - **IntSvc kind** (vendor curated, `UiPath.IntSvc`): if `--connection-id` was omitted, the stub contains `<REPLACE_WITH_VENDOR_CONNECTION_UUID>` placeholders — replace before running. Output payload is wrapped: read `$context.outputs.<ExportBucketKey>.content.<field>`, NOT `.<field>`. NEVER use Http kind with a vendor connection UUID — that produces 401 "Invalid Element token" in cloud.
74
- 6. **NEVER ship a workflow with `<REPLACE_WITH_*>` placeholders in `with.connectionId` or `with.connectionResourceId`.** StudioWeb's properties panel renders the placeholder string as if it were a real connection name — the connection pill shows `<REPLACE_WITH_VENDOR_C...>` with a red error, and the workflow 401s in cloud. The placeholder is a sentinel for "you forgot to run `stub` with `--connection-id`," not a value the user fills in later. If you don't have a pinged UUID, STOP authoring and ask the user — do not emit the placeholder. Same for `<REPLACE_WITH_TARGET_URL>` in Http kind. The vendor template at [assets/templates/vendor-curated-call-example.json](assets/templates/vendor-curated-call-example.json) keeps the placeholder ONLY because it is a template; generated workflows MUST have real values.
75
- 7. **(Solutions-mode + IntSvc kind only) Sync the connection into the Solution catalogue.** When the project lives under a `Solution/` tree, every vendor connection used by an IntSvc kind activity MUST also be declared as a Solution resource (`Solution/resources/solution_folder/connection/<connector-key>/<name>.json`) AND registered in the per-user debug overwrites (`Solution/userProfile/<guid>/debug_overwrites.json`). Without both, StudioWeb's properties panel marks the activity with **"to debug this resource, select a connection for it from the resource definition page"**, and clicking the activity overwrites `with.connectionId` with `null` in `Workflow.json` (the runtime resolves from `Workflow.json`; the panel resolves from the Solution resource tree + debug overwrites, which is why "Run" works but the panel breaks). The two-step CLI flow: (a) `uip api-workflow bindings sync --workflow <Workflow.json>` — generates `bindings_v2.json` next to the workflow (the input StudioWeb normally produces in-memory on open). (b) `uip solution resource refresh --solution-folder <path>` — reads every project's `bindings_v2.json`, uses `@uipath/resource-builder-sdk` to write both the catalogue file and the per-user debug overwrites via `editOverwritesAsync`. Idempotent and additive: run after every Workflow.json edit that adds/changes a connection. **SKIP this step entirely for:** (a) Http kind activities (`call: "UiPath.Http"`, `connectionId: "ImplicitConnection"` — literal sentinel, not a real connection), (b) non-connector activities (Sequence/Assign/If/ForEach/TryCatch/Wait/Response — no connectionId at all), (c) standalone projects with a top-level `project.json` and no `Solution/` wrapper. See [connector-activity-discovery.md — Step 5](references/connector-activity-discovery.md#step-5--solutions-mode-intsvc-kind-sync-the-connection-into-the-solution-catalogue).
76
-
77
- **Field-shape rules — must hold across edits, not just at stub time. Violating any silently drops data on the first StudioWeb save:**
78
- - **(a) Flat dotted keys.** Connector field names like `message.toRecipients` are literal keys, NOT paths. `"message.toRecipients": "..."`, NOT `{ message: { toRecipients: "..." } }`. Nested objects are dropped.
79
- - **(b) Literals are BARE in connector params.** Plain `"andrei@uipath.com"`, NOT `"${'andrei@uipath.com'}"`. The Assign / Response wrap rule (rule 5) is **inverted** here — `${'...'}` reads as a (broken) expression and the field clears on save. References (`${$context.variables.X}`) stay wrapped because they're real expressions.
80
- - **(c) Use `Data.SlotKey` and `Data.ExportBucketKey` from the stub verbatim.** Connector activities are the only activity type where the slot key (in the `do` array) and the export-bucket key (what `$context.outputs.<X>` reads as) can differ. The stub computes both; never derive either by hand from `objectName`. The two are sometimes identical (e.g. Outlook `ListEmails` → both `ListEmails_1`) and sometimes different (e.g. HTTP → `HttpRequest_1` slot vs `http_request_1` bucket).
81
- - **(d) Endpoint may include a hub prefix.** Outlook `send-mail-v2` → `/hubs/productivity/send-mail-v2`. The stub fills the full path from IS Elements; don't truncate.
82
-
83
- See [references/connector-activity-discovery.md](references/connector-activity-discovery.md) for the full flow, sample `stub` output, and worked examples (Http kind HTTP Request, IntSvc kind GetNewestEmail, IntSvc kind multipart SendEmail).
66
+ 16. **Connector activities (HTTP + Integration Service) come from `uip api-workflow registry resolve` + `stub` — never hand-author or guess.** The stub computes `metadata.configuration`, the kind (`UiPath.Http` vs `UiPath.IntSvc`), the endpoint (with hub prefix), `SlotKey`, and `ExportBucketKey` (which can differ — HTTP slot `HttpRequest_1` vs bucket `http_request_1`). Use all of them verbatim; NEVER invent a `uiPathActivityTypeId`, hand-author `metadata.configuration`, or reconstruct a key from `objectName`. Non-negotiables (full step-by-step, field-shape rules, multipart, and worked examples in [references/connector-activity-discovery.md](references/connector-activity-discovery.md)):
67
+ - **A keyword `resolve` miss is NOT proof no curated activity exists — verify connector-first before giving up.** `resolve` AND-matches every token, so a marketing phrase + guessed verb over-narrows (the product "UiPath Data Fabric" carries `connectorKey: uipath-uipath-dataservice` and activity names like "Create Entity Record" — `resolve "data fabric insert"` returns 0; fewer/truer tokens, not more). Before concluding none exists or falling back to a hand-built HTTP call (a Rule 0 fork): map the product/vendor → connector key with `uip is connectors list --filter "<product>"`, then enumerate with `uip is activities list <connector-key>`. Do NOT hardcode/guess the key — look it up. See the reference's Step 1 recovery.
68
+ - **IntSvc/vendor activities require a *pinged* connection.** `uip is connections ping <uuid>` must succeed before authoring — listing-state ≠ runtime-state; an `Enabled` connection can still 401 in cloud. On failure, try the unfiltered `uip is connections list` fallback and re-ping a different `Id` for that `ConnectorKey`.
69
+ - **No connection pings cleanly → STOP and ask the user — do not decide alone.** Offer: **(a)** continue with a placeholder (stub without `--connection-id`, leaving the `<REPLACE_WITH_VENDOR_CONNECTION_UUID>` sentinel — workflow is structurally complete but 401s until replaced; only with explicit user consent), or **(b)** stop and wait for the user to create/fix the connection, then re-ping. Never silently emit the placeholder, never silently abort. (Instance of Rule 0 — escalate design forks.)
70
+ - **NEVER ship a `<REPLACE_WITH_*>` placeholder** in `with.connectionId` / `connectionResourceId` / Http `bodyParameters.url`. StudioWeb renders it as a broken connection and the workflow 401s. The placeholder is a sentinel for "re-stub with the real value," not a fill-in-later field.
71
+ - **After every stub, cross-check required fields** — the stub drops `required: true` request fields (e.g. Outlook `getNewestEmail` needs `parentFolderId`). Confirm via `uip is resources describe ... --operation <op>` or the stub's own `metadata.configuration` inputFields; re-stub with `--inputs` if missing.
72
+ - **Connector params use flat dotted keys and BARE literals.** `"message.toRecipients": "..."`, not nested objects; plain `"x@y.com"`, not `"${'x@y.com'}"` — rule 5's wrap is **inverted** here (`${'...'}` clears the field on save). Real references (`${$context...}`) stay wrapped.
73
+ - **NEVER use Http kind with a vendor connection UUID** (401 "Invalid Element token"). IntSvc output is wrapped: read `$context.outputs.<ExportBucketKey>.content.<field>`.
74
+ - **(Solutions-mode + IntSvc only)** sync the connection into the catalogue: `uip api-workflow bindings sync --workflow <Workflow.json>` then `uip solution resource refresh --solution-folder <path>`. Skip for Http kind, non-connector activities, and standalone (no `Solution/`) projects.
84
75
  17. **Pass input as a JSON string.** `--input-arguments '{"key":"value"}'`. Invalid JSON exits 1.
85
76
  18. **Always `--output json`** when parsing CLI output programmatically. Success → `{ "Result": "Success", "Code": "WorkflowRun", "Data": {...} }`. Failure → `{ "Result": "Failure", "Message": "...", "Instructions": "..." }` with exit 1.
86
77
  19. **Build & publish goes through the solution packager.** API workflows pack via `uip solution pack <solutionDir> <outputDir>` and publish via `uip solution publish <package.zip>`. There is no `uip api-workflow build` or `uip api-workflow publish` command. Project type must be `"Api"` in the solution `.uipx`.
@@ -132,8 +123,9 @@ Decide which activities to use and in what order.
132
123
  | Pause execution | **Wait** | `wait.seconds`/`minutes`/`milliseconds` |
133
124
  | Exit loop early | **Break (in If)** | Wrap Break in an If — there's no "break when" condition on Break itself. `break: "true"` (string!), `then: "exit"`, `set: "${$input}"` |
134
125
  | Exit nested loops | **Flag variable + Break twice** | Set a flag in inner loop, check + Break in outer — see [control-flow-patterns.md](references/control-flow-patterns.md#5-conditional-break-inside-a-loop) |
135
- | Call an arbitrary REST API (catfacts, stock prices, weather, any public/internal HTTP endpoint) | **Unified HTTP Request** (`call: "UiPath.Http"`, Http kind) | `uip api-workflow registry resolve "http request"` → pick the HTTP Request GUID → `registry stub <guid> --inputs '{"method":"GET","url":"<TARGET>"}' --output json`. The stub emits `call: "UiPath.Http"` with `unifiedTypesCompatible: true` so StudioWeb renders the unified HTTP card. **NEVER use `call: "http"`** (deprecated simple form — renders as block icon). See [connector-activity-discovery.md](references/connector-activity-discovery.md#http-kind--call-uipathhttp-http-request-curated-activity) and the verified template at [assets/templates/connector-call-example.json](assets/templates/connector-call-example.json). |
136
- | Call a vendor service via its UiPath connection (Gmail, Outlook, GitHub, Slack, etc.) | **Vendor curated activity** (`call: "UiPath.IntSvc"`, IntSvc kind) | `uip is connections list/ping` for the UUID → `uip api-workflow registry resolve "<keyword>"` → `registry stub <guid> --connection-id <uuid>`. Stub returns IntSvc kind with the full hub-prefixed endpoint. Never use `UiPath.Http` with a vendor connection UUID. See [connector-activity-discovery.md](references/connector-activity-discovery.md#intsvc-kind--call-uipathintsvc-vendor-curated-activity) |
126
+ | Call an arbitrary REST API (catfacts, stock prices, weather, any public/internal endpoint) | **Unified HTTP Request** (`call: "UiPath.Http"`, Http kind) | `connectionId: "ImplicitConnection"`. NEVER `call: "http"` (block icon). Via rule 16's flow. |
127
+ | Call a vendor service via its UiPath connection (Gmail, Outlook, GitHub, Slack, …) | **Vendor curated activity** (`call: "UiPath.IntSvc"`, IntSvc kind) | Needs a pinged connection UUID. Via rule 16's flow. |
128
+ | CRUD a connector object that has no curated activity | **Generic activity** (`ActivityType: "Generic"` in resolve output — "List Records", "Get Record", …; IntSvc kind) | Add `--object-name <object>` (from `uip is resources list`) to the stub. Prefer a curated activity when one exists. Via rule 16's flow. |
137
129
 
138
130
  Before generating, determine:
139
131
  1. Which activities are needed and in what order
@@ -162,51 +154,22 @@ Workflow skeleton:
162
154
 
163
155
  ### Phase 3: Validate (static) then Run (with consent)
164
156
 
165
- After authoring or editing, **always validate first, autonomously** (Critical Rule 20):
157
+ Validate autonomously (rule 20), fixing + re-validating until `Data.Status: "Valid"`:
166
158
 
167
159
  ```bash
168
160
  uip api-workflow validate ./my-workflow.json --output json
169
161
  ```
170
162
 
171
- - **Validate passes** (`Result: "Success"`, `Data.Status: "Valid"`) — the activity tree is structurally sound. Proceed to the run-confirmation step below.
172
- - **Validate fails** (`Result: "Failure"`, exit 1) — do NOT bother the user. Read the `Instructions` field, locate the offending activity by its JSON path, fix Workflow.json, re-validate. Loop until pass. Focus on the **semantic-tail errors** (prose messages like "Unknown activityType", "must contain a 'do' with inner 'switch'") — schema-level `oneOf` errors are noisy fanout; one semantic fix usually clears a dozen schema errors at once.
173
-
174
- Once validate is green, **ask the user before running anything** (Critical Rule 21). The choice has real consequences:
163
+ Once green, **ask before running** (rule 21) — pick the mode from workflow content:
175
164
 
176
165
  | Mode | Flag | What happens | Use when |
177
166
  |--|--|--|--|
178
- | No-auth | `--no-auth` | Skips token loading. Structure / expressions / control flow validated. IntSvc kind vendor calls fail with a missing-token error. | Workflow contains only Sequence / Assign / JS / If / ForEach / DoWhile / Break / TryCatch / Wait / Response, OR Http kind HTTP with `connectionId: "ImplicitConnection"`. Default for most authoring iterations. |
179
- | With auth | (none) | Uses the user's `uip login` token. Real Integration Service calls — vendor APIs touched, side effects happen. | Workflow contains a IntSvc kind vendor activity AND the user has confirmed it's OK to send the real call (email actually sent, ticket actually created, file actually uploaded). |
180
-
181
- Phrase the question explicitly, with a recommended default. Examples:
182
-
183
- - Control-flow workflow: "Validate passed. Run with `--no-auth` to exercise the activity tree? (Y/n)"
184
- - IntSvc kind workflow: "Validate passed. The workflow contains a IntSvc kind Outlook send-mail-v2 call — running with auth WILL send a real email to `<recipient>`. Options: (1) skip run, (2) run `--no-auth` (fails at the connector call but exercises everything before it), (3) run with auth and send the email. Which?"
185
-
186
- Wait for the user's reply. Then run the chosen command:
167
+ | No-auth | `--no-auth` | Skips token loading. Structure / expressions / control flow validated. IntSvc vendor calls fail with a missing-token error. | Control-flow-only, OR Http kind with `connectionId: "ImplicitConnection"`. Default for most iterations. |
168
+ | With auth | (none) | Uses the `uip login` token. Real Integration Service calls — vendor side effects happen. | An IntSvc vendor activity AND the user confirmed the real call is OK (email sent, ticket created, file uploaded). |
187
169
 
188
- ```bash
189
- # User picked --no-auth:
190
- uip api-workflow run ./my-workflow.json --no-auth --output json
191
-
192
- # User confirmed running with auth (uip login required):
193
- uip api-workflow run ./my-workflow.json --output json
194
- ```
195
-
196
- If the user picks "skip," tell them the exact command to run themselves and stop.
170
+ State the consequence in the question (e.g. "running with auth WILL send a real email to `<recipient>` — (1) skip, (2) `--no-auth`, (3) run with auth?"), wait for the reply, then run `uip api-workflow run ./my-workflow.json [--no-auth] --output json`. If the user skips, give them the exact command and stop.
197
171
 
198
- **Read the failure output:**
199
- - `Message` describes the error
200
- - `Instructions` often contains the fix
201
- - Exit code: `0` = success, `1` = failure
202
-
203
- **Fix in this order** (higher categories often resolve lower ones):
204
- 1. **Structure** — missing `#Wrapper`/`#Body`, duplicate keys, malformed JSON, missing `WorkflowStart`
205
- 2. **Expression** — missing `${...}`, unwrapped condition, undefined references
206
- 3. **Activity Config** — wrong required fields, wrong export key casing, missing `then: "end"` on Response
207
- 4. **Logic** — wrong behavior, infinite loops, unreachable code
208
-
209
- See [references/troubleshooting.md](references/troubleshooting.md) for the full pitfall catalog.
172
+ Fix run failures in category order — **Structure > Expression > Activity Config > Logic** (higher categories often resolve lower ones). Full pitfall catalog: [references/troubleshooting.md](references/troubleshooting.md).
210
173
 
211
174
  ### Phase 4: Package and Publish
212
175
 
@@ -276,32 +239,18 @@ uip solution publish ./build/MyApiSolution.zip --tenant MyTenant --output json
276
239
  | [assets/templates/loop-aggregation-example.json](assets/templates/loop-aggregation-example.json) | DoWhile + ForEach + Assign accumulation — pure-compute aggregation pattern |
277
240
  | [assets/templates/nested-control-flow-example.json](assets/templates/nested-control-flow-example.json) | Heavy nesting demo — TryCatch around DoWhile around If with conditional Break |
278
241
  | [assets/templates/connector-call-example.json](assets/templates/connector-call-example.json) | **Http kind** — HTTP Request curated activity (`call: "UiPath.Http"`) for arbitrary REST calls. Generated by `registry stub` against the catfacts URL. Shows the canonical shape: `connectionId: "ImplicitConnection"`, `unifiedTypesCompatible: true`, `savedJitInputFieldId: "in_http-request"`, URL in `bodyParameters.url`. Verified end-to-end with `uip api-workflow run --no-auth`. |
279
- | [assets/templates/vendor-curated-call-example.json](assets/templates/vendor-curated-call-example.json) | **IntSvc kind** — vendor curated activity (`call: "UiPath.IntSvc"`) using Outlook GetNewestEmail as exemplar. The `<REPLACE_WITH_VENDOR_CONNECTION_UUID>` placeholder is a sentinel — replace it with a pinged UUID from `uip is connections list/ping` **before** writing the workflow to disk. StudioWeb renders the literal placeholder as a broken connection if it survives. See rule 16 step 6. |
242
+ | [assets/templates/vendor-curated-call-example.json](assets/templates/vendor-curated-call-example.json) | **IntSvc kind** — vendor curated activity (`call: "UiPath.IntSvc"`) using Outlook GetNewestEmail as exemplar. The `<REPLACE_WITH_VENDOR_CONNECTION_UUID>` placeholder is a sentinel — replace it with a pinged UUID from `uip is connections list/ping` **before** writing the workflow to disk. StudioWeb renders the literal placeholder as a broken connection if it survives. See rule 16. |
280
243
  | [assets/templates/solution-connection-resource-template.json](assets/templates/solution-connection-resource-template.json) | **Solution connection resource** — declares a IntSvc kind connection as a Solution resource. Write to `Solution/resources/solution_folder/connection/<connector-key>/<connection-name>.json`. Required for Solutions-mode projects; without it the StudioWeb properties panel flags the activity as having an invalid connection. |
281
244
 
282
245
  ## Anti-patterns
283
246
 
284
- - **Do NOT** modify the `WorkflowStart` activity — it is system-generated. Add user activities AFTER it inside the root sequence.
285
- - **Do NOT** omit `export.as` on activities whose output later activities need. Without `export`, only `$output` (the most recent activity's result) is visible.
286
- - **Do NOT** use YAML — the runtime parses JSON only.
287
- - **Do NOT** invent a `uip api-workflow build`, `uip api-workflow validate`, or `uip api-workflow publish` command. Build/publish goes through `uip solution pack` / `uip solution publish`. Validation is `uip api-workflow run` (with or without `--no-auth` depending on the user's choice — see rule 20).
288
- - **Do NOT** treat activity keys as cosmetic — they are the keys downstream activities use to read outputs (`$context.outputs.<ActivityKey>`).
289
- - **Do NOT** use boolean `true` for Break — must be string `"true"`. Same for `then: "exit"` / `then: "end"` — these are control-flow keywords as strings.
290
- - **Do NOT** read workflow inputs as `$input.<name>` from any non-first activity — use `$workflow.input.<name>`.
291
- - **Do NOT** reuse activity keys across nested scopes. `If_1#Then` cannot appear in two Ifs even at different levels — increment to `If_2`. See [control-flow-patterns.md](references/control-flow-patterns.md#core-structural-rules).
292
- - **Do NOT** reuse iteration variable names across nested loops. Inner `currentItem` shadows outer `currentItem`. Use distinct names per nesting level.
293
- - **Do NOT** invent a `uiPathActivityTypeId` or hand-author the `metadata.configuration` blob for connector activities. Both must come from `uip api-workflow registry stub`. See [connector-activity-discovery.md](references/connector-activity-discovery.md).
294
- - **Do NOT** use `call: "http"` (the deprecated simple form) when asked to fetch data from a public REST API (catfacts, stock prices, weather, …). It is the model's default fallback from training data, but StudioWeb's `restoreFromTaskItem` rejects it — the activity renders as a "block" icon. The correct form is `call: "UiPath.Http"` (Http kind), generated by `uip api-workflow registry resolve` + `stub`. See [connector-activity-discovery.md](references/connector-activity-discovery.md) and the verified template at [assets/templates/connector-call-example.json](assets/templates/connector-call-example.json).
295
- - **Do NOT** nest `bodyParameters` fields for connector activities. `message.toRecipients` is a literal key, not a path. Nested `{ message: { toRecipients: ... } }` is wiped on save. See rule 16(a).
296
- - **Do NOT** wrap connector `bodyParameters` / `queryParameters` literals as `${'literal'}` — that's the Assign / Response rule. Connector params take bare literals. See rule 16(b).
297
- - **Do NOT** reconstruct the slot key or export-bucket key by hand on connector activities. Use `Data.SlotKey` and `Data.ExportBucketKey` from the stub output verbatim — they can differ (HTTP: slot `HttpRequest_1`, bucket `http_request_1`) or match (Outlook `ListEmails`: both `ListEmails_1`). See rule 16(c).
298
- - **Do NOT** skip `uip api-workflow registry stub`. It calls IS Elements internally to fetch the full endpoint path (with hub prefix) and the multipart signal — both of which the TypeCache alone misses. Hand-authoring the activity from the `resolve` output skips that enrichment.
299
- - **Do NOT** skip `uip is connections ping` for vendor (IntSvc kind) activities. A connection that lists as `Enabled` can still be broken. The ping is the only way to catch it before the workflow 401s in cloud. See rule 16.
300
- - **Do NOT** leave `<REPLACE_WITH_VENDOR_CONNECTION_UUID>` (or any `<REPLACE_WITH_*>` placeholder) in a generated workflow. StudioWeb's properties panel renders the literal placeholder string as if it were a real connection identifier — the connection pill displays the placeholder text with a red error. The placeholder is meaningful only inside the template file; once you copy the activity into the user's workflow, replace every placeholder with the value from `uip is connections ping` (UUID) or `--inputs` (URL). When you cannot find a pinged UUID, ask the user — do not paste the sentinel. See rule 16 step 6.
301
- - **Do NOT** invoke `uip api-workflow run` autonomously. Always ask the user first — and especially never run with auth without an explicit "yes." Vendor calls have real side effects (emails sent, tickets created). See rule 20.
302
- - **Do NOT** send `application/json` to a multipart endpoint. If `parameters` shows `"type": "multipart"`, declare `multipartParameters` on the activity. See rule 16.
303
- - **Do NOT** trust `registry stub`'s `queryParameters` / `pathParameters` / `bodyParameters` as complete. The stub drops `required: true` fields. Cross-check with `uip is resources describe --operation <op> --connection-id <uuid>` after every stub call. See rule 16 step 4.
304
- - **Do NOT** skip the Solution catalogue sync for Solutions-mode IntSvc kind activities. The properties-panel "invalid connection" / "resource definition page" error AND the connectionId nulling on activity click both stay until BOTH the catalogue file (`Solution/resources/solution_folder/connection/<connector-key>/<name>.json`) AND the per-user debug overwrites (`Solution/userProfile/<guid>/debug_overwrites.json`) exist. Run `uip api-workflow bindings sync --workflow <Workflow.json>` followed by `uip solution resource refresh --solution-folder <path>` after every `registry stub --connection-id` for Solutions-mode IntSvc kind activities. See rule 16 step 7.
247
+ The mistakes an agent makes most often (each maps to a Critical Rule above — see it for the full reasoning):
248
+
249
+ - **Do NOT** use `call: "http"` for a REST call — it's the training-data default, but StudioWeb rejects it (renders as a "block" icon). Use `call: "UiPath.Http"` from `registry stub`. See rule 16.
250
+ - **Do NOT** wrap connector `bodyParameters` / `queryParameters` literals as `${'literal'}` — rule 5's wrap is **inverted** for connectors; bare literals only, or the field clears on save. See rule 16.
251
+ - **Do NOT** ship a `<REPLACE_WITH_*>` placeholder in a workflow — StudioWeb renders it as a broken connection and it 401s. No pinged UUID → ask the user. See rule 16.
252
+ - **Do NOT** read workflow inputs as `$input.<name>` from a non-first activity — use `$workflow.input.<name>`. See rule 13.
253
+ - **Do NOT** invoke `uip api-workflow run` autonomously, and never with auth without an explicit "yes" — vendor calls have irreversible side effects (emails sent, tickets created). See rules 20–21.
305
254
 
306
255
  ## Infinite Loop Prevention
307
256