@uipath/skills 1.195.0 → 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 (380) 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/hooks/suggest-permissions.sh +0 -0
  9. package/hooks/validate-skill-descriptions.sh +0 -0
  10. package/package.json +1 -1
  11. package/skills/uipath-admin/SKILL.md +6 -7
  12. package/skills/uipath-admin/references/audit-commands.md +32 -10
  13. package/skills/uipath-admin/references/audit-workflow-guide.md +25 -6
  14. package/skills/uipath-admin/references/ip-restriction/ip-restriction-commands.md +1 -1
  15. package/skills/uipath-agents/SKILL.md +5 -3
  16. package/skills/uipath-agents/references/coded/embedding-in-flows.md +6 -0
  17. package/skills/uipath-agents/references/coded/flow-integration.md +1 -0
  18. package/skills/uipath-agents/references/coded/frameworks/langgraph-integration.md +2 -2
  19. package/skills/uipath-agents/references/coded/frameworks/llamaindex-integration.md +1 -1
  20. package/skills/uipath-agents/references/coded/frameworks/openai-agents-integration.md +5 -1
  21. package/skills/uipath-agents/references/coded/lifecycle/build.md +1 -0
  22. package/skills/uipath-agents/references/coded/lifecycle/evaluate.md +8 -6
  23. package/skills/uipath-agents/references/coded/quickstart.md +17 -12
  24. package/skills/uipath-agents/references/lowcode/agent-definition.md +17 -16
  25. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/analyze-attachments.md +2 -2
  26. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/batch-transform/impl-json.md +1 -1
  27. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/built-in-tools.md +4 -4
  28. package/skills/uipath-agents/references/lowcode/capabilities/built-in-tools/deeprag/impl-json.md +1 -1
  29. package/skills/uipath-agents/references/lowcode/capabilities/context/context.md +1 -1
  30. package/skills/uipath-agents/references/lowcode/capabilities/context/datafabric.md +1 -1
  31. package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +12 -12
  32. package/skills/uipath-agents/references/lowcode/capabilities/escalation/escalation.md +14 -14
  33. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails-recommend.md +1 -1
  34. package/skills/uipath-agents/references/lowcode/capabilities/guardrails/guardrails.md +23 -20
  35. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +27 -26
  36. package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +12 -13
  37. package/skills/uipath-agents/references/lowcode/capabilities/mcp/mcp.md +133 -0
  38. package/skills/uipath-agents/references/lowcode/capabilities/memory/memory.md +9 -9
  39. package/skills/uipath-agents/references/lowcode/capabilities/process/process.md +25 -24
  40. package/skills/uipath-agents/references/lowcode/capabilities/process/solution-files.md +6 -6
  41. package/skills/uipath-agents/references/lowcode/critical-rules.md +17 -17
  42. package/skills/uipath-agents/references/lowcode/debug.md +55 -0
  43. package/skills/uipath-agents/references/lowcode/evaluations/evaluate.md +6 -6
  44. package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +1 -1
  45. package/skills/uipath-agents/references/lowcode/evaluations/evaluators.md +3 -3
  46. package/skills/uipath-agents/references/lowcode/evaluations/running-evaluations.md +8 -8
  47. package/skills/uipath-agents/references/lowcode/lowcode.md +18 -12
  48. package/skills/uipath-agents/references/lowcode/model-selection-guide.md +3 -3
  49. package/skills/uipath-agents/references/lowcode/project-lifecycle.md +53 -33
  50. package/skills/uipath-agents/references/lowcode/solution-resources.md +8 -8
  51. package/skills/uipath-api-workflow/SKILL.md +32 -83
  52. package/skills/uipath-api-workflow/references/cli-reference.md +40 -26
  53. package/skills/uipath-api-workflow/references/connector-activity-discovery.md +75 -23
  54. package/skills/uipath-api-workflow/references/troubleshooting.md +4 -12
  55. package/skills/uipath-automation-discovery/SKILL.md +234 -0
  56. package/skills/uipath-automation-discovery/references/intake-guide.md +85 -0
  57. package/skills/uipath-automation-discovery/references/mining-guide.md +156 -0
  58. package/skills/uipath-automation-discovery/references/report-template.md +95 -0
  59. package/skills/uipath-coded-apps/SKILL.md +0 -2
  60. package/skills/uipath-data-fabric/SKILL.md +0 -2
  61. package/skills/uipath-feedback/SKILL.md +1 -1
  62. package/skills/uipath-governance/SKILL.md +0 -2
  63. package/skills/uipath-human-in-the-loop/SKILL.md +2 -3
  64. package/skills/uipath-maestro-bpmn/.maintenance/check-all.sh +0 -0
  65. package/skills/uipath-maestro-bpmn/.maintenance/check-anchors.sh +0 -0
  66. package/skills/uipath-maestro-bpmn/.maintenance/check-depth.sh +0 -0
  67. package/skills/uipath-maestro-bpmn/.maintenance/check-link-text.sh +0 -0
  68. package/skills/uipath-maestro-bpmn/.maintenance/check-links.sh +0 -0
  69. package/skills/uipath-maestro-bpmn/.maintenance/check-orphans.sh +0 -0
  70. package/skills/uipath-maestro-bpmn/.maintenance/check-plugin-pairs.sh +0 -0
  71. package/skills/uipath-maestro-bpmn/.maintenance/check-template.sh +0 -0
  72. package/skills/uipath-maestro-bpmn/.maintenance/check-uip-commands.sh +0 -0
  73. package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.py +0 -0
  74. package/skills/uipath-maestro-bpmn/.maintenance/check-validation-fixtures.sh +0 -0
  75. package/skills/uipath-maestro-bpmn/references/author/references/task-recipes/api-workflow.md +1 -1
  76. package/skills/uipath-maestro-bpmn/references/operate/references/run.md +1 -1
  77. package/skills/uipath-maestro-bpmn/references/shared/local-metadata-regeneration-guide.md +2 -2
  78. package/skills/uipath-maestro-bpmn/references/shared/wrapper-shells.md +1 -1
  79. package/skills/uipath-maestro-case/SKILL.md +22 -27
  80. package/skills/uipath-maestro-case/references/bindings-and-expressions.md +7 -1
  81. package/skills/uipath-maestro-case/references/bindings-v2-sync.md +7 -16
  82. package/skills/uipath-maestro-case/references/case-commands.md +9 -9
  83. package/skills/uipath-maestro-case/references/case-editing-operations.md +51 -67
  84. package/skills/uipath-maestro-case/references/case-schema.md +74 -138
  85. package/skills/uipath-maestro-case/references/connector-integration.md +32 -5
  86. package/skills/uipath-maestro-case/references/connector-trigger-common.md +39 -12
  87. package/skills/uipath-maestro-case/references/evals/evals.json +9 -23
  88. package/skills/uipath-maestro-case/references/implementation.md +24 -24
  89. package/skills/uipath-maestro-case/references/phased-execution.md +24 -38
  90. package/skills/uipath-maestro-case/references/placeholder-tasks.md +9 -9
  91. package/skills/uipath-maestro-case/references/planning.md +20 -79
  92. package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +15 -122
  93. package/skills/uipath-maestro-case/references/plugins/case/planning.md +3 -1
  94. package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +10 -22
  95. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +7 -5
  96. package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +2 -0
  97. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +5 -5
  98. package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +1 -1
  99. package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +4 -4
  100. package/skills/uipath-maestro-case/references/plugins/logging/impl-json.md +10 -0
  101. package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +10 -42
  102. package/skills/uipath-maestro-case/references/plugins/sla/planning.md +5 -5
  103. package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +8 -79
  104. package/skills/uipath-maestro-case/references/plugins/stages/planning.md +7 -14
  105. package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +1 -1
  106. package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +3 -2
  107. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +1 -1
  108. package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +3 -2
  109. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +1 -1
  110. package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -3
  111. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +2 -2
  112. package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +12 -7
  113. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
  114. package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
  115. package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +1 -1
  116. package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +4 -3
  117. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +1 -1
  118. package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -3
  119. package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +3 -0
  120. package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +6 -7
  121. package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +4 -2
  122. package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +4 -27
  123. package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +8 -20
  124. package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +6 -11
  125. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +15 -30
  126. package/skills/uipath-maestro-case/references/plugins/variables/global-vars/planning.md +4 -4
  127. package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +8 -7
  128. package/skills/uipath-maestro-case/references/registry-discovery.md +4 -4
  129. package/skills/uipath-maestro-case/references/sdd-generation-rules.md +12 -10
  130. package/skills/uipath-maestro-case/references/troubleshooting-guide.md +1 -1
  131. package/skills/uipath-maestro-flow/.maintenance/check-all.sh +0 -0
  132. package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +0 -0
  133. package/skills/uipath-maestro-flow/.maintenance/check-depth.sh +0 -0
  134. package/skills/uipath-maestro-flow/.maintenance/check-link-text.sh +0 -0
  135. package/skills/uipath-maestro-flow/.maintenance/check-links.sh +0 -0
  136. package/skills/uipath-maestro-flow/.maintenance/check-orphans.sh +0 -0
  137. package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +0 -0
  138. package/skills/uipath-maestro-flow/.maintenance/check-template.sh +0 -0
  139. package/skills/uipath-maestro-flow/.maintenance/check-uip-commands.sh +0 -0
  140. package/skills/uipath-maestro-flow/.maintenance/check-versions.sh +0 -0
  141. package/skills/uipath-maestro-flow/SKILL.md +9 -6
  142. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +4 -4
  143. package/skills/uipath-maestro-flow/references/author/references/brownfield.md +17 -2
  144. package/skills/uipath-maestro-flow/references/author/references/editing-operations-cli.md +1 -1
  145. package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +3 -3
  146. package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +9 -9
  147. package/skills/uipath-maestro-flow/references/author/references/greenfield.md +13 -10
  148. package/skills/uipath-maestro-flow/references/author/references/planning-arch.md +75 -5
  149. package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +2 -1
  150. package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +14 -4
  151. package/skills/uipath-maestro-flow/references/author/references/plugins/connector-trigger/impl.md +20 -4
  152. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/impl.md +5 -5
  153. package/skills/uipath-maestro-flow/references/author/references/plugins/hitl/planning.md +5 -5
  154. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-connector.md +81 -0
  155. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl-manual.md +63 -0
  156. package/skills/uipath-maestro-flow/references/author/references/plugins/http/impl.md +59 -57
  157. package/skills/uipath-maestro-flow/references/author/references/plugins/http/planning.md +8 -7
  158. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +23 -23
  159. package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/planning.md +2 -2
  160. package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +1 -1
  161. package/skills/uipath-maestro-flow/references/diagnose/references/failure-modes.md +6 -6
  162. package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +2 -2
  163. package/skills/uipath-maestro-flow/references/evaluate/references/upload-safety.md +1 -1
  164. package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +8 -8
  165. package/skills/uipath-maestro-flow/references/operate/references/run.md +2 -2
  166. package/skills/uipath-maestro-flow/references/operate/references/ship.md +7 -7
  167. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +19 -17
  168. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +1 -1
  169. package/skills/uipath-maestro-flow/references/shared/file-format.md +1 -1
  170. package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +7 -7
  171. package/skills/uipath-planner/SKILL.md +110 -74
  172. package/skills/{uipath-solution → uipath-planner}/assets/templates/agent-sdd-template.md +3 -3
  173. package/skills/{uipath-solution → uipath-planner}/assets/templates/api-workflow-sdd-template.md +4 -4
  174. package/skills/{uipath-solution → uipath-planner}/assets/templates/case-sdd-template.md +4 -4
  175. package/skills/{uipath-solution → uipath-planner}/assets/templates/coded-app-sdd-template.md +3 -3
  176. package/skills/{uipath-solution → uipath-planner}/assets/templates/flow-sdd-template.md +4 -4
  177. package/skills/{uipath-solution → uipath-planner}/assets/templates/rpa-sdd-template.md +11 -11
  178. package/skills/uipath-planner/references/multi-skill-patterns-guide.md +3 -3
  179. package/skills/uipath-planner/references/non-pdd-lane-guide.md +10 -6
  180. package/skills/uipath-planner/references/pdd-driven-lane-guide.md +17 -7
  181. package/skills/uipath-planner/references/plan-and-tasks-format.md +2 -2
  182. package/skills/{uipath-solution/references/design → uipath-planner/references}/product-selection-guide.md +8 -8
  183. package/skills/{uipath-solution/references/design → uipath-planner/references}/rpa-product-guide.md +1 -1
  184. package/skills/{uipath-solution/references/design → uipath-planner/references}/sdd-generation-guide.md +26 -39
  185. package/skills/{uipath-solution/references/design → uipath-planner/references}/tenant-library-search-guide.md +7 -7
  186. package/skills/uipath-platform/SKILL.md +21 -48
  187. package/skills/uipath-platform/references/integration-service/http-request.md +5 -2
  188. package/skills/uipath-platform/references/integration-service/reference-resolution.md +19 -1
  189. package/skills/uipath-platform/references/integration-service/triggers.md +21 -5
  190. package/skills/uipath-platform/references/licensing/consumables-report.md +1 -1
  191. package/skills/uipath-platform/references/licensing/tenant-allocations.md +1 -1
  192. package/skills/uipath-platform/references/licensing/user-licenses-allocations.md +1 -1
  193. package/skills/uipath-platform/references/{resources → orchestrator}/manage-assets.md +37 -34
  194. package/skills/uipath-platform/references/orchestrator/manage-sessions.md +1 -1
  195. package/skills/uipath-platform/references/orchestrator/orchestrator.md +4 -31
  196. package/skills/uipath-platform/references/{resources → orchestrator}/process-queues.md +61 -50
  197. package/skills/uipath-platform/references/{resources → orchestrator}/resources.md +21 -21
  198. package/skills/uipath-platform/references/orchestrator/run-jobs.md +26 -14
  199. package/skills/uipath-platform/references/orchestrator/setup-environment.md +20 -16
  200. package/skills/uipath-platform/references/orchestrator/tenant-admin.md +7 -7
  201. package/skills/uipath-platform/references/{resources → orchestrator}/triggers-and-webhooks.md +41 -37
  202. package/skills/uipath-platform/references/{resources → orchestrator}/work-with-storage.md +56 -34
  203. package/skills/uipath-platform/references/uip-commands.md +20 -19
  204. package/skills/uipath-review/SKILL.md +81 -7
  205. package/skills/uipath-review/references/agents/agent-common-issues.md +42 -0
  206. package/skills/uipath-review/references/agents/agent-review-checklist.md +79 -57
  207. package/skills/uipath-review/references/agents/agents-coded-rules.md +160 -0
  208. package/skills/uipath-review/references/agents/agents-common-rules.md +32 -0
  209. package/skills/uipath-review/references/agents/agents-lowcode-rules.md +128 -0
  210. package/skills/uipath-review/references/platform/platform-resources-checklist.md +2 -2
  211. package/skills/uipath-review/references/review-workflow-guide.md +1 -1
  212. package/skills/uipath-review/references/rpa/rpa-review-checklist.md +2 -2
  213. package/skills/uipath-review/references/rule-catalog-workflow.md +90 -0
  214. package/skills/uipath-review/references/rule-format.md +91 -0
  215. package/skills/uipath-rpa/SKILL.md +16 -6
  216. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/CreateEntityRecord.md +149 -0
  217. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/CreateMultipleEntityRecords.md +67 -0
  218. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteEntityRecord.md +44 -0
  219. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteFileFromRecordField.md +56 -0
  220. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DeleteMultipleEntityRecords.md +65 -0
  221. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/DownloadFileFromRecordField.md +115 -0
  222. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/GetEntityRecordById.md +50 -0
  223. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/QueryEntityRecords.md +69 -0
  224. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UpdateEntityRecord.md +120 -0
  225. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UpdateMultipleEntityRecords.md +67 -0
  226. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/activities/UploadFileToRecordField.md +103 -0
  227. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/guides/data-service-filter-builder-guide.md +461 -0
  228. package/skills/uipath-rpa/references/activity-docs/UiPath.DataService.Activities/overview.md +355 -0
  229. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AppendRangeX.md +1 -1
  230. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AutoFillX.md +1 -1
  231. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/AutoFitX.md +1 -1
  232. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ChangeDataRangeModification.md +1 -1
  233. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ChangePivotTableDataSourceX.md +1 -1
  234. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ClearRangeX.md +1 -1
  235. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CopyPasteRangeX.md +1 -1
  236. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CreatePivotTableXv2.md +1 -1
  237. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/CreateTableX.md +1 -1
  238. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteColumnX.md +1 -1
  239. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteRowsX.md +1 -1
  240. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DeleteSheetX.md +1 -1
  241. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/DuplicateSheetX.md +1 -1
  242. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExecuteMacroArgumentX.md +1 -1
  243. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExecuteMacroX.md +1 -1
  244. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ExportExcelToCsvX.md +1 -1
  245. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FillRangeX.md +1 -1
  246. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FilterPivotTableX.md +1 -1
  247. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FilterX.md +1 -1
  248. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FindFirstLastDataRowX.md +1 -1
  249. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FindReplaceValueX.md +1 -1
  250. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/FormatRangeX.md +2 -2
  251. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertColumnX.md +1 -1
  252. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertExcelChartX.md +1 -1
  253. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertRowsX.md +1 -1
  254. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InsertSheetX.md +1 -1
  255. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InvokeVBAArgumentX.md +1 -1
  256. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/InvokeVBAX.md +1 -1
  257. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/LookupX.md +1 -1
  258. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/PivotTableFieldX.md +1 -1
  259. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ProtectSheetX.md +1 -1
  260. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ReadCellFormulaX.md +1 -1
  261. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/ReadCellValueX.md +1 -1
  262. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RefreshPivotTableX.md +1 -1
  263. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RemoveDuplicatesX.md +1 -1
  264. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/RenameSheetX.md +1 -1
  265. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SaveAsPdfX.md +1 -1
  266. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SaveExcelFileX.md +1 -1
  267. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SortColumnX.md +1 -1
  268. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/SortX.md +1 -1
  269. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/UnprotectSheetX.md +1 -1
  270. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/UpdateChartX.md +1 -1
  271. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/VLookupX.md +1 -1
  272. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/WriteCellX.md +1 -1
  273. package/skills/uipath-rpa/references/activity-docs/UiPath.Excel.Activities/3.5/activities/overview.md +2 -2
  274. package/skills/uipath-rpa/references/activity-docs/UiPath.GSuite.Activities/3.8/activities/overview.md +2 -2
  275. package/skills/uipath-rpa/references/activity-docs/UiPath.Mail.Activities/2.8/activities/overview.md +2 -2
  276. package/skills/uipath-rpa/references/activity-docs/UiPath.MicrosoftOffice365.Activities/3.8/activities/SendMailConnections.md +1 -1
  277. package/skills/uipath-rpa/references/activity-docs/UiPath.MicrosoftOffice365.Activities/3.8/activities/overview.md +3 -3
  278. package/skills/uipath-rpa/references/activity-docs/UiPath.Presentations.Activities/2.5/activities/overview.md +2 -2
  279. package/skills/uipath-rpa/references/activity-docs/UiPath.System.Activities/25.10/activities/overview.md +1 -1
  280. package/skills/uipath-rpa/references/activity-docs/UiPath.Word.Activities/2.5/activities/overview.md +2 -2
  281. package/skills/uipath-rpa/references/cli-reference.md +108 -554
  282. package/skills/uipath-rpa/references/coded/coding-guidelines.md +1 -1
  283. package/skills/uipath-rpa/references/coded/operations-guide.md +3 -3
  284. package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +1 -1
  285. package/skills/uipath-rpa/references/connector-capabilities.md +3 -2
  286. package/skills/uipath-rpa/references/debugging.md +43 -36
  287. package/skills/uipath-rpa/references/environment-setup.md +3 -3
  288. package/skills/uipath-rpa/references/is-connector-xaml-guide.md +3 -3
  289. package/skills/uipath-rpa/references/library-authoring-guide.md +226 -0
  290. package/skills/uipath-rpa/references/project-structure-guide.md +43 -0
  291. package/skills/uipath-rpa/references/publishing-guide.md +5 -5
  292. package/skills/uipath-rpa/references/tenant-library-search-guide.md +18 -14
  293. package/skills/uipath-rpa/references/testing-guide.md +6 -6
  294. package/skills/uipath-rpa/references/trigger-pattern-guide.md +2 -2
  295. package/skills/uipath-rpa/references/ui-automation-guide.md +43 -6
  296. package/skills/uipath-rpa/references/uia-configure-target-workflows.md +2 -2
  297. package/skills/uipath-rpa/references/uia-prerequisites.md +1 -1
  298. package/skills/uipath-rpa/references/validation-guide.md +4 -4
  299. package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +4 -1
  300. package/skills/uipath-rpa/references/xaml/common-pitfalls.md +18 -6
  301. package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +304 -0
  302. package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +3 -0
  303. package/skills/uipath-solution/SKILL.md +23 -125
  304. package/skills/uipath-solution/references/{operate/activate-and-manage.md → activate-and-manage.md} +1 -1
  305. package/skills/uipath-solution/references/{operate/develop-solution.md → develop-solution.md} +43 -37
  306. package/skills/uipath-solution/references/{operate/pack-and-deploy.md → pack-and-deploy.md} +3 -3
  307. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/intra-solution-references.md +2 -2
  308. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/manual-edits.md +4 -4
  309. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/same-name-across-folders.md +2 -2
  310. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/shared-cloud-resource.md +3 -3
  311. package/skills/uipath-solution/references/{operate/scenarios → scenarios}/virtual-resource.md +4 -4
  312. package/skills/uipath-solution/references/{operate/scenarios.md → scenarios.md} +5 -5
  313. package/skills/uipath-solution/references/{operate/solution-overview.md → solution-overview.md} +3 -3
  314. package/skills/uipath-tasks/SKILL.md +0 -2
  315. package/skills/uipath-test/SKILL.md +26 -7
  316. package/skills/uipath-troubleshoot/agents/triage.md +6 -4
  317. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/overview.md +55 -0
  318. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/add-queue-item-failed.md +58 -0
  319. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/application-launch-failed.md +56 -0
  320. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/browser-open-or-attach-failed.md +59 -0
  321. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/file-operation-failed.md +60 -0
  322. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/foreach-row-failed.md +56 -0
  323. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/image-target-not-found.md +56 -0
  324. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/invoke-code-failed.md +54 -0
  325. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/invoke-workflow-failed.md +58 -0
  326. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/kill-process-failed.md +49 -0
  327. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-activity-configuration-error.md +80 -0
  328. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-activity-timeout.md +61 -0
  329. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-element-interaction-failed.md +61 -0
  330. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/ui-element-not-found.md +64 -0
  331. package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +24 -0
  332. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-file-locked.md +142 -0
  333. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-file-not-found.md +140 -0
  334. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-null-reference.md +119 -0
  335. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/read-range-sheet-not-found.md +146 -0
  336. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/playbooks/write-cell-failures.md +131 -0
  337. package/skills/uipath-troubleshoot/references/activity-packages/excel-activities/summary.md +5 -0
  338. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/investigation_guide.md +1 -0
  339. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/overview.md +16 -0
  340. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/activity-configuration-error.md +42 -0
  341. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/ambiguous-selector.md +131 -0
  342. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-not-found.md +84 -0
  343. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/application-open-failed.md +46 -0
  344. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/browser-navigation-failed.md +45 -0
  345. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-coordinate-off-screen.md +120 -0
  346. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/disabled-element.md +0 -2
  347. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/element-found-not-actionable.md +43 -0
  348. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/healing-agent-no-license.md +12 -12
  349. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/healing-agent-orch-issues.md +108 -0
  350. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/inject-js-failed.md +41 -0
  351. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +7 -0
  352. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/select-item-no-items.md +37 -0
  353. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/selector-failure-manual.md +2 -0
  354. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/timeout-issue.md +2 -2
  355. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/verify-execution-failure.md +120 -0
  356. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/wrong-target-application.md +41 -0
  357. package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +12 -0
  358. package/skills/uipath-troubleshoot/references/products/agents/playbooks/guardrail-violation.md +111 -0
  359. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-connection-disabled.md +90 -0
  360. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-invalid-credentials.md +123 -0
  361. package/skills/uipath-troubleshoot/references/products/agents/playbooks/is-invalid-element-instance.md +96 -0
  362. package/skills/uipath-troubleshoot/references/products/agents/playbooks/llm-insufficient-information.md +1 -1
  363. package/skills/uipath-troubleshoot/references/products/agents/summary.md +4 -0
  364. package/skills/uipath-troubleshoot/references/products/orchestrator/investigation_guide.md +7 -7
  365. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-no-host.md +3 -1
  366. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-pending-stale-dispatch.md +2 -0
  367. package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-exit-code-0x40010004.md +104 -0
  368. package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +1 -0
  369. package/skills/uipath-troubleshoot/references/summary.md +10 -1
  370. package/version-manifest.json +2 -2
  371. package/skills/uipath-ixp/SKILL.md +0 -84
  372. package/skills/uipath-ixp/references/cli-reference.md +0 -113
  373. package/skills/uipath-ixp/references/improve-prompts-guide.md +0 -283
  374. package/skills/uipath-ixp/references/label-documents-guide.md +0 -175
  375. package/skills/uipath-ixp/references/project-setup-guide.md +0 -90
  376. package/skills/uipath-maestro-case/references/plugins/edges/impl-json.md +0 -152
  377. package/skills/uipath-maestro-case/references/plugins/edges/planning.md +0 -93
  378. /package/skills/{uipath-solution/references/design → uipath-planner/references}/package-selection-guide.md +0 -0
  379. /package/skills/{uipath-solution/references/design → uipath-planner/references}/pdd-analysis-guide.md +0 -0
  380. /package/skills/uipath-solution/references/{operate/scenarios → scenarios}/failure-modes.md +0 -0
@@ -8,11 +8,11 @@ Phase 1 trusts `sdd.md` as written (SKILL.md Rule 2). These rules make that trus
8
8
 
9
9
  Reason the case shape from the process the user describes — **do not reach for the template first.** The template renders a shape you already decided; it does not decide it for you. Build the model in this order: stages → tasks → types → pull exceptions out. Each concept below is a question to ask of the user's process, not a slot to fill.
10
10
 
11
- **Stage** — a phase the case works through: a bounded milestone with an *entry* (when it starts), *tasks* (the work done inside it), and a *completion/exit* (when it's done and where the case goes next). Stages are the backbone; they run in sequence (or parallel) wired by **edges**. Derive one stage per milestone the user names ("intake", "underwriting", "funding"). Ask: *what is the case working toward right now, and what makes that done?* A stage that "marks the case complete" is on the main flow (`isRequired: true`).
11
+ **Stage** — a phase the case works through: a bounded milestone with an *entry* (when it starts), *tasks* (the work done inside it), and a *completion/exit* (when it's done and where the case goes next). Stages are the backbone; they run in sequence (or parallel), wired by **entry/exit conditions** (the case has no edges — transitions are condition-driven). Derive one stage per milestone the user names ("intake", "underwriting", "funding"). Ask: *what is the case working toward right now, and what makes that done?* A stage that "marks the case complete" is on the main flow (`isRequired: true`).
12
12
 
13
13
  **Secondary stage** (a.k.a. exception stage — `case-management:ExceptionStage`) — work that is **not a fixed step on the line**: it can fire at many points and only under a condition. Errors, escalations, rejections, rework loops, cancellations. Three rules define it, all CLI-enforced:
14
14
 
15
- - **No edges** — never wired in or out by an edge (validator: `CASE_MGMT_SECONDARY_STAGE_EDGES`). It is detached from the flow graph.
15
+ - **No edges** — reached and exited purely by conditions, never wired by an edge. (True of every stage now that edges are retired; the legacy `CASE_MGMT_SECONDARY_STAGE_EDGES` validator that flagged secondary-stage edges is moot.) It is detached from any flow graph.
16
16
  - **Entered by its own condition**, evaluated continuously against case state — often *interrupting* (pauses active stages when it fires). It is reached because a condition became true, not because the case traversed an edge.
17
17
  - **Exits via `return-to-origin`** — routes the case back to the stage it interrupted, through the exit rule, not a new edge.
18
18
 
@@ -40,7 +40,7 @@ The case, each stage, and each task move through a lifecycle gated by **rules**
40
40
  How to reason with these:
41
41
 
42
42
  - **`required-*` vs `selected-*`.** `required-tasks-completed` / `required-stages-completed` = "all items flagged required are done" (the `isRequired` flow). `selected-tasks-completed` / `selected-stage-completed` / `selected-stage-exited` = "these *specific named* items." Pairing rule (Key Rule 4): `Marks Complete: Yes` pairs only with `required-*`; `selected-*` is for `No` (routing / early exit / alternate disposition). A `Yes` + `selected-*` pair is a schema error.
43
- - **Secondary (exception) stage** uses **stage-entry + stage-exit rules only, never edges.** Its entry rule is typically *interrupting* (`isInterrupting: true`); its exit uses `return-to-origin` to rejoin the flow it left.
43
+ - **Secondary (exception) stage** uses **stage-entry + stage-exit rules only, never edges** (true of every stage now — edges are retired). Its entry rule is typically *interrupting* (`isInterrupting: true`); its exit uses `return-to-origin` to rejoin the flow it left.
44
44
  - **First task in a stage** must carry `current-stage-entered` (emit it explicitly). `wait-for-connector` makes a gate pause for an inbound connector callback — its `conditionExpression` gates on **case state** only (no `event` payload; in-rule extract-then-gate is unsupported at runtime — gate a downstream condition instead); `adhoc` lets a *task* fire manually from the case app (task-entry only — never a stage-entry rule); `runs-sequentially` chains tasks in a lane.
45
45
  - **`user-selected-stage`** (stage entry) starts a stage on demand by a user rather than by flow. The CLI validator requires it to pair with a `wait-for-user` stage exit elsewhere: a `wait-for-user` exit with no `user-selected-stage` entry — or a `user-selected-stage` entry with no `wait-for-user` exit — fails `validate`.
46
46
 
@@ -72,7 +72,7 @@ A task Output *produces* a variable (`-> =vars.<id>`); a task Input *consumes* o
72
72
  Reason the shape; do not template it:
73
73
 
74
74
  - **Milestones → stages:** Intake → Screening → Compliance → Finance Setup → Activation — regular stages on the main flow.
75
- - **"goes back for remediation" → secondary stage.** Remediation fires only on a condition (compliance failed) and routes back — model it as an exception stage (condition-entered, `return-to-origin`), **not** a sixth inline stage with edges.
75
+ - **"goes back for remediation" → secondary stage.** Remediation fires only on a condition (compliance failed) and routes back — model it as an exception stage (condition-entered, `return-to-origin`), **not** a sixth inline primary stage.
76
76
  - **"sign up through portal" → trigger.** A portal signup is an inbound event, not Manual — Always-Ask the trigger type.
77
77
  - **Tasks + types** (read verb + actor, ask the [§ Choosing](#choosing-the-task-type) question):
78
78
  - *screen them* → AI judges unstructured docs → `agent`
@@ -534,7 +534,7 @@ Every Inputs `Binding` cell carries one of (case-sensitive):
534
534
  | Form | Meaning |
535
535
  |---|---|
536
536
  | `<literal>` | Plain string / number / boolean (`"50"`, `0`, `true`) |
537
- | `=vars.<id>` | Case variable from §1.5 (`<id>` must match a §1.5 row's `Name` cell) |
537
+ | `=vars.<id>` | Case variable from §1.5 (`<id>` matches a §1.5 row's `Name`), or an upstream task's auto-emitted output field referenced directly (see §Variable lineage closure) |
538
538
  | `=vars.<id>.<subfield>` | Sub-field of a structured case variable (dot-path) |
539
539
  | `=bindings.<id>` | Registered resource (action app, process, connection) |
540
540
  | `=metadata.<key>` | Case metadata |
@@ -603,6 +603,8 @@ The new SDD shape carries producer / consumer signal across three places (NOT a
603
603
 
604
604
  Otherwise the variable is open-lineage and Phase 0 cannot Approve.
605
605
 
606
+ **Task-output direct reference.** A `=vars.<name>` where `<name>` is an upstream task's auto-emitted output field is NOT a §1.5 variable — exempt from closure. The emitting task self-declares it (resolver matches any `task.data.outputs[].id`) and is its own producer; only ordering applies (emitting task before consumer). Declare a §1.5 row only to rename, set custom `Default` / `Type`, or expose case-level state. Unresolvable refs (typo, or a field the task does not emit) are caught later by the io-binding validator (Check 1), not here. See [sdd-template-examples.md § Task-local-only variables](../assets/templates/sdd-template-examples.md).
607
+
606
608
  **Self-binding rule.** An Outputs row of the form `caseVar = =vars.caseVar` or `caseVar = =js:vars.caseVar` (LHS and only-referenced-RHS variable are the same `caseVar`) is FORBIDDEN — it's a no-op that masks a missing producer. Phase 0 strips such rows from the draft, narrates the strip, and emits a `high`-severity review item asking the user whether they meant to (a) wire a different producer, (b) drop the row entirely, or (c) initialize via §1.5 `Default`. Computed self-references like `caseVar = =js:(vars.caseVar + 1)` are allowed (incrementers / accumulators) — the RHS expression mutates the value.
607
609
 
608
610
  **Output-naming consistency rule.** An Outputs `-> <caseVar>` row whose `Field` leaf name (the produced datum's natural name, e.g. `complianceStatus`) has NO matching §1.5 variable AND is mapped into a differently-named existing variable (e.g. `titleReviewStatus`) → emit a `medium` review item (`rev_aliased_output_<task>`): "task output `<field>` aliased into unrelated variable `<caseVar>`; declare a dedicated §1.5 variable for the datum or confirm the reuse is intentional." Aliasing a produced datum into an unrelated variable closes lineage mechanically while corrupting meaning — a variable named for one thing silently carries another, and a multi-stage variable ends up double-purposed.
@@ -628,7 +630,7 @@ Pattern X1 is preferred unless an actual connector emits the close event. When t
628
630
 
629
631
  **Audit checklist** (run before Approve renames the draft):
630
632
 
631
- 1. Every variable referenced by any `=vars.<name>` (or `=vars.<name>.<sub>`) anywhere in `sdd.md` (task Inputs, IF columns, exit rules, button `Maps To`, SLA expressions) has a matching §1.5 row whose `Name` equals `<name>`.
633
+ 1. Every variable referenced by any `=vars.<name>` (or `=vars.<name>.<sub>`) anywhere in `sdd.md` (task Inputs, IF columns, exit rules, button `Maps To`, SLA expressions) has a matching §1.5 row whose `Name` equals `<name>` — OR `<name>` is an upstream task's auto-emitted output field (see §Variable lineage closure → Task-output direct reference; never add a §1.5 row to back such a ref).
632
634
  2. Every §1.5 row's `Category` is exactly one of `In` / `Out` / `Variable` — never blank, never `—`.
633
635
  3. **`In` row consistency:** `sourceTriggers` and `sourceFields` are BOTH empty.
634
636
  4. **`Out` row consistency:** `sourceTriggers` is empty. Closure requires either (a) non-empty `Default`, OR (b) a task Outputs row in the case plan targeting this Name via `-> {name}` or `{name} = {expr}`. (PR 860 added a Phase 2 validator: `Out` + non-empty `sourceTriggers` → reject.)
@@ -689,9 +691,9 @@ Phase 0's narrative cells (Description, persona names, stage names, task names,
689
691
 
690
692
  ## Logical integrity — stage graph
691
693
 
692
- Beyond schema-pairing checks (§Finalization step 1), the case must be a connected graph:
694
+ Beyond schema-pairing checks (§Finalization step 1), the case must be a connected graph. **Edges are retired — these condition-based checks are the SOLE reachability guard; there is no edge graph to fall back on.** A malformed or missing entry condition is the only thing that can orphan a stage, so this walk is load-bearing.
693
695
 
694
- 1. **Every stage reachable from a trigger.** Walk forward from each trigger row through Stage Entry Conditions (`case-entered` from root, `selected-stage-completed`, `selected-stage-exited`, `wait-for-connector`). Every primary stage's id must be reached. Unreachable stage → blocking error (orphan stage).
696
+ 1. **Every stage reachable from a trigger.** Walk forward from each trigger row through Stage Entry Conditions (`case-entered` from root, `selected-stage-completed`, `selected-stage-exited`, `wait-for-connector`) — condition-only, no edges. Every primary stage's id must be reached. Unreachable stage → blocking error (orphan stage).
695
697
  2. **Every stage exits.** Every primary stage must have either (a) a completion row (`Marks Stage Complete: Yes`) whose completion is consumed by a downstream stage's Entry Condition or a case-exit, OR (b) another primary stage whose Entry Condition references it (`selected-stage-completed`/`selected-stage-exited`), OR (c) feed an ExceptionStage. A stage no other stage (or case-exit) keys off → blocking error (terminal-loop stage).
696
698
  3. **Every case-exit row references a stage that exists.** No dangling `Required Stages` references.
697
699
  4. **Every `Required Stages` cell in §1.4 names ≥ 1 primary stage with `Required for case completion: Yes`.** Otherwise the case can never complete.
@@ -778,7 +780,7 @@ Before Approve atomic-renames `sdd.draft.md` → `sdd.md`, Phase 0 runs these ch
778
780
 
779
781
  On pass: atomic rename `sdd.draft.md` → `sdd.md`, print Approve summary (with Inferred / defaulted block + Caller obligation block when applicable + review-items count), run Approve AskUserQuestion.
780
782
 
781
- On fail: list specific errors, return to AskUserQuestion `Re-edit` / `Restart` / `Abort`. No Approve until all checks pass.
783
+ On fail: list the specific failing checks, return to AskUserQuestion `Re-edit` / `Restart` / `Abort`. On `Re-edit`, fix the cited rows and **re-run only the checks that failed** (plus any whose inputs changed) — not the full suite, and without re-reading the whole document. No Approve until the cited checks pass.
782
784
 
783
785
  ## Anti-patterns
784
786
 
@@ -789,7 +791,7 @@ On fail: list specific errors, return to AskUserQuestion `Re-edit` / `Restart` /
789
791
  - **Do NOT emit a decision `action` task with fewer than 2 buttons.** `is_decision: Yes` requires ≥ 2 buttons; downgrade to `is_decision: No` if the task does not fork the case path.
790
792
  - **Do NOT emit a `wait-for-timer` task with `<UNRESOLVED>` duration.** Timer cannot fire — block Approve.
791
793
  - **Do NOT emit SLA cells on `process` / `agent` / `rpa` / `api-workflow` / timer / connector / `case-management` tasks.** SLA supports case, stage, and `action` tasks ONLY (sdd-template Key Rule 1).
792
- - **Do NOT emit `external-agent`, `connector-activity`, `connector-trigger`, or `wait-for-event` as task types.** This skill generates 9 of the CLI's 10 types (Rule 16); `external-agent` is a real CLI type but has no generation plugin here (model as `api-workflow` / `execute-connector-activity`), and the rest are not CLI task types at all.
794
+ - **Do NOT emit `external-agent`, `external-workflow`, `document-extraction`, `flow-process`, `connector-activity`, `connector-trigger`, or `wait-for-event` as task types.** This skill generates 9 of the CLI's 10 types (Rule 16). `external-agent`, `external-workflow`, `document-extraction`, and `flow-process` are **not supported yet**. The rest are not CLI task types at all.
793
795
  - **Do NOT author task inputs as bare field-name lists** (`**Inputs:** a, b, c`). Use the `Field | Type | Binding` table — bare lists force Phase 1 into name-match inference.
794
796
  - **Do NOT close variable lineage by guessing producers.** If no producer fires before a consumer AND the §1.5 row has no `Default`, that is an open-lineage error — surface it. Never silently retag the row's `Category` to `In` or invent a `Default` to suppress the failure.
795
797
  - **Do NOT populate `sourceTriggers` on `In` or `Out` rows.** PR 860 added a Phase 2 validator that rejects `Out` + non-empty `sourceTriggers`. For trigger-payload extraction, use `Category: Variable` (see §1.5 and [sdd-template-examples.md](../assets/templates/sdd-template-examples.md) Use Case 2).
@@ -71,7 +71,7 @@ uip maestro case instance variables <INSTANCE_ID> --folder-key <FOLDER_KEY> --pa
71
71
 
72
72
  ## Step 4 — Correlate with the case definition
73
73
 
74
- Use the incident's faulting element ID and the variable state to locate the failure point in `caseplan.json`. Map the element ID to the corresponding stage, task, edges etc., check its `data.inputs[]`, upstream edges, and the variable values flowing into it.
74
+ Use the incident's faulting element ID and the variable state to locate the failure point in `caseplan.json`. Map the element ID to the corresponding stage or task, check its `data.inputs[]`, the entry/exit conditions that route into it, and the variable values flowing into it.
75
75
 
76
76
  If the local `caseplan.json` may differ from what was deployed, fetch the deployed case definition:
77
77
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: uipath-maestro-flow
3
- description: "Always invoke for `.flow` files OR when the user asks what IxP / document-extraction models are available in Maestro. UiPath Maestro Flow (.flow) — build, edit, run, debug, fix, evaluate. Create, connect nodes; connector, approval, script, subflow, ixp; list IxP / document-extraction models for a flow; triggers, schedules; validate. Upload, publish, manage runs, instances. Diagnose errors, incidents, traces. Design eval sets, evaluators, run Studio Web evals via `uip maestro flow eval`. `uip maestro flow` CLI. For C#/XAML→uipath-rpa. For agents→uipath-agents."
3
+ description: "TRIGGER for `.flow` files, UiPath Flow / Maestro Flow build or edit requests, adding IxP/document-extraction nodes to a flow, or asking what IxP / document-extraction models are available in Maestro. UiPath Maestro Flow (.flow) — build, edit, run, debug, fix, evaluate. Create, connect nodes; connector, approval, script, subflow, ixp; list IxP / document-extraction models for a flow through `uip maestro flow registry search \"uipath.ixp\"`; triggers, schedules; validate. Upload, publish, manage runs, instances. Diagnose errors, incidents, traces. Design eval sets, evaluators, run Studio Web evals via `uip maestro flow eval`. `uip maestro flow` CLI. DO NOT TRIGGER for raw IxP project labelling/prediction review/prompt tuning outside Flow→uipath-ixp; C#/XAML→uipath-rpa; standalone agents→uipath-agents."
4
4
  allowed-tools: Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion
5
5
  ---
6
6
 
@@ -18,6 +18,7 @@ Comprehensive guide for creating, editing, validating, debugging, publishing, di
18
18
  - Validate or format a Flow file locally
19
19
  - Apply Node ownership — Edit/Write for user-owned nodes, CLI for CLI-owned nodes (see Author capability)
20
20
  - Configure connector, connector-trigger, or managed HTTP nodes; scaffold inline-agent projects
21
+ - Add IxP / document-extraction nodes to a flow, or list IxP models available to Maestro Flow through the flow registry
21
22
  - Plan a complex flow before building
22
23
 
23
24
  **Operate** — publishing, running, or managing a deployed flow. Read [references/operate/CAPABILITY.md](references/operate/CAPABILITY.md).
@@ -62,11 +63,13 @@ Comprehensive guide for creating, editing, validating, debugging, publishing, di
62
63
 
63
64
  These rules apply across all three capabilities. Each capability index adds capability-scoped rules on top.
64
65
 
65
- 1. **ALWAYS use `--output json` and prefer `--output-filter` for extraction** on all `uip` commands when parsing output programmatically. `--output-filter <jmespath>` is a global CLI flag applied to the `Data` envelope before printing — write expressions starting at `Data` (no `Data.` prefix). Canonical recipe: `uip maestro flow registry search <keyword> --output json --output-filter "[*].{NodeType:NodeType,DisplayName:DisplayName,Description:Description,AvailableOnTenant:AvailableOnTenant}"`. `registry search` returns `Data` as a **flat array of PascalCase objects** (`NodeType`, `DisplayName`, `Description`, `AvailableOnTenant`) — NOT `Data.Nodes`, lowercase `type`, or lowercase `category`. External parsers (`python3 -c`, `jq`) remain valid for transforms JMESPath cannot express; reach for them only after the shape is verified. Full mechanics, fall-back guidance, and shape-inspection probes: [cli-conventions.md §3](references/shared/cli-conventions.md#3-prefer---output-filter-for-extraction).
66
+ > **Tool vocabulary.** Tool names in this skill use Claude Code conventions: `Edit` = in-place string replacement, `Write` = full-file write, `Read`/`Glob`/`Grep` = file read/search, `Bash` = shell, progress list = the harness's task list. On another harness, map each to its equivalent — the semantics (reviewable in-place diff vs wholesale rewrite, shell as last resort for file edits) carry unchanged.
67
+
68
+ 1. **ALWAYS use `--output json` and prefer `--output-filter` for extraction** on all `uip` commands when parsing output programmatically. `--output-filter <jmespath>` is a global CLI flag applied to the `Data` envelope before printing — write expressions starting at `Data` (no `Data.` prefix). Canonical recipe: `uip maestro flow registry search <keyword> --output json --output-filter "[*].{NodeType:NodeType,DisplayName:DisplayName,Description:Description,AvailableOnTenant:AvailableOnTenant}"`. `registry search` returns `Data` as a **flat array of PascalCase objects** (`NodeType`, `DisplayName`, `Description`, `AvailableOnTenant`) — NOT `Data.Nodes`, lowercase `type`, or lowercase `category`. With `--local`, `AvailableOnTenant` is omitted (no tenant lookup) — drop it from the projection. External parsers (`python3 -c`, `jq`) remain valid for transforms JMESPath cannot express; reach for them only after the shape is verified. Full mechanics, fall-back guidance, and shape-inspection probes: [cli-conventions.md §3](references/shared/cli-conventions.md#3-prefer---output-filter-for-extraction).
66
69
  2. **Do NOT run `flow debug` without explicit user consent** — debug executes the flow for real (sends emails, posts messages, calls APIs).
67
70
  3. **Resource discovery order — search before creating.** When the prompt references an existing resource by name ("use the X agent", "call the Y API workflow", "invoke the Z RPA process"), follow this order strictly before deciding the resource doesn't exist:
68
71
  1. **Tenant registry search** — `uip maestro flow registry search "<name>" --output json`. Requires `uip login`; returns published resources.
69
- 2. **In-solution local discovery** — `uip maestro flow registry list --local --output json`. No login required; returns sibling projects in the same `.uipx` solution.
72
+ 2. **In-solution local discovery** — `uip maestro flow registry list --local --output json`, or `uip maestro flow registry search "<name>" --local --output json` for keyword match. No login required; returns sibling projects in the same `.uipx` solution. An empty `search --local` is not proof of absence (the keyword may not match the project's naming) — confirm with `list --local` before concluding the resource is not in the solution.
70
73
  3. **Only then create/scaffold** — scaffold an inline agent, mock, or create-new-resource only when both searches return no match AND either the user explicitly asks to embed/inline/create, or no published resource can satisfy the requirement.
71
74
 
72
75
  The words "coded" and "low-code" describe the _implementation style_ of a published agent — they are NOT synonyms for "inline". `uipath.agent.autonomous` (inline) is only correct when the user explicitly asks to embed/inline/create a new agent inside this flow. Only use `core.logic.mock` when the resource is **not** in the same solution and not yet published. See the relevant resource plugin's `impl.md` (e.g., [rpa](references/author/references/plugins/rpa/impl.md), [agent](references/author/references/plugins/agent/impl.md)).
@@ -76,11 +79,11 @@ These rules apply across all three capabilities. Each capability index adds capa
76
79
  **It also applies to ANY external service named in the prompt — not just in-tenant resources.** Before picking a node type for a named service (Slack, open-meteo, Stripe, any REST API), run `uip maestro flow registry search "<service>" --output json` and follow the [Selecting External Service Nodes](references/author/references/planning-arch.md#selecting-external-service-nodes) ladder (connector → managed HTTP → RPA). Manual `core.action.http.v2` is the bottom of that ladder, chosen only after a search finds no connector — never a first guess from the brand name. This holds even when full planning is skipped (see [greenfield.md — Select the node type for each external service](references/author/references/greenfield.md#select-the-node-type-for-each-external-service-runs-even-when-full-planning-is-skipped)).
77
80
 
78
81
  4. **Never invoke other skills automatically** — when a flow needs an RPA process, agent, or app, identify the gap and provide handoff instructions. Let the user decide when to switch skills.
79
- 5. **Always present user questions as a dropdown with a "Something else" escape hatch** — Whenever this skill needs a decision from the user (which solution to use, publish vs debug vs deploy, which connector to pick, which trigger type, which resource to bind, etc.), use the `AskUserQuestion` tool with the enumerated choices as options AND include **"Something else"** as the last option so the user can supply free-form string input. Never ask open-ended questions in chat when a finite set of sensible defaults exists. If the user picks "Something else", parse their string answer and continue.
82
+ 5. **Always present user questions as a dropdown with a "Something else" escape hatch** — Whenever this skill needs a decision from the user (which solution to use, publish vs debug vs deploy, which connector to pick, which trigger type, which resource to bind, etc.), ask the user a question with the enumerated choices as options AND include **"Something else"** as the last option so the user can supply free-form string input. Never ask open-ended questions in chat when a finite set of sensible defaults exists. If the user picks "Something else", parse their string answer and continue. No structured-question facility on the harness → ask in chat as a numbered list with "Something else" last. Running non-interactively (CI/headless — no user available to answer) → take the pre-selected/recommended option, proceed, and record the decision prominently in the final report; if no option is marked recommended, stop and report the open decision instead of guessing. Exception: consent gates (`flow debug`, destructive operations) are never auto-answered — in non-interactive mode, stop and report the blocked step instead. These fallbacks define "ask the user" / "confirm with the user" wherever this skill's references require it.
80
83
  6. **A Flow project MUST live inside a solution** — always scaffold the solution first (`uip solution init <Name>`), then `cd <Name>` and run `uip maestro flow init <Name>`. The correct layout is **always** `<Solution>/<Project>/<Project>.flow` (double-nested). Running `uip maestro flow init` in a bare directory produces a single-nested `<Project>/<Project>.flow` layout that fails Studio Web upload, packaging, and downstream tooling. See [author/greenfield.md](references/author/references/greenfield.md) Step 2.
81
84
  7. **Narrate progress in plain English only when the user has opted into verbosity — silent by default.** Engage when the user asks for narration / progress ("walk me through it", "show your steps", "verbose", "be detailed") or signals a verbosity preference; otherwise work quietly and surface only decisions, failures, consent gates, and the final result. When engaged: one short line per logical step, in user terms ("checking your tenant login", "adding the Slack node and wiring its inputs", "running validate") — no flag-level or JSON-structure-level detail, applied uniformly across `uip` CLI calls, shell builtins, file edits, and bulk searches. See [shared/ux-narration-and-todos.md](references/shared/ux-narration-and-todos.md) §When to engage.
82
- 8. **Maintain a user-facing `TodoWrite` list only when the user has opted into progress tracking / verbosity.** In silent mode there is no user-facing todo list (the agent MAY track privately). When engaged: any journey above the trivial threshold gets a granular list — one logical step ≈ one todo, granularity per-step not per-phase. The count emerges from the journey's actual steps; do not target a number. Bash plumbing inside a step (registry lookups, JSON parsing, intermediate file reads) is invisible — do not surface as todos. See [shared/ux-narration-and-todos.md](references/shared/ux-narration-and-todos.md) for the engage triggers, granularity rules, threshold table, and pivot rules.
83
- 9. **Every node has exactly one author — Edit/Write or CLI, never both.** Connector activities (`uipath.connector.<key>.<op>`), connector triggers (`uipath.connector.trigger.<key>.<trigger>`), wait for events (`uipath.connector.event.<key>.<event>` — a mid-flow event wait, configured exactly like a trigger), and managed HTTP (`core.action.http.v2`) are CLI-owned — use `uip maestro flow node add` + `uip maestro flow node configure`. Every other node type — triggers, control flow, logic, HITL, patterns, agents, resource nodes, queue — is user-owned: author the `.flow` JSON directly with `Edit` / `Write`. `inputs.detail` on CLI-owned nodes is a `=jsonString:essentialConfiguration` envelope that the validator rejects when hand-authored. Inline-agent CLI is limited to agent project lifecycle (`uip agent init / validate / migrate --inline-in-flow`); the `uipath.agent.autonomous` flow node itself is user-owned. Scripting languages (`python`, `node`, `jq`, `sed`, `awk`, inline shell heredocs) are a last resort for user-owned edits and require explicit user approval after the trade-offs (state bypass, opaque diff, no interruption point) are surfaced. **Canonical source of truth:** [author/CAPABILITY.md — Node ownership](references/author/CAPABILITY.md#node-ownership--who-authors-the-node) (full table); [author/editing-operations.md — Tool Selection Ladder](references/author/references/editing-operations.md#tool-selection-ladder) (per-operation ladder).
85
+ 8. **Maintain a user-facing progress list only when the user has opted into progress tracking / verbosity.** In silent mode there is no user-facing todo list (the agent MAY track privately). When engaged: any journey above the trivial threshold gets a granular list — one logical step ≈ one todo, granularity per-step not per-phase. The count emerges from the journey's actual steps; do not target a number. Bash plumbing inside a step (registry lookups, JSON parsing, intermediate file reads) is invisible — do not surface as todos. See [shared/ux-narration-and-todos.md](references/shared/ux-narration-and-todos.md) for the engage triggers, granularity rules, threshold table, and pivot rules.
86
+ 9. **Every node has exactly one author — Edit/Write or CLI, never both.** Connector activities (`uipath.connector.<key>.<op>`), connector triggers (`uipath.connector.trigger.<key>.<trigger>`), wait for events (`uipath.connector.event.<key>.<event>` — a mid-flow event wait, configured exactly like a trigger), and managed HTTP (`core.action.http.v2`) are CLI-owned — use `uip maestro flow node add` + `uip maestro flow node configure`. Every other node type — triggers, control flow, logic, HITL, patterns, agents, resource nodes, queue — is user-owned: author the `.flow` JSON directly with `Edit` / `Write`. `inputs.detail` on CLI-owned nodes is a `=jsonString:essentialConfiguration` envelope that the validator rejects when hand-authored. Inline-agent CLI is limited to agent project lifecycle (`uip agent init / refresh / validate --inline-in-flow`); the `uipath.agent.autonomous` flow node itself is user-owned. Scripting languages (`python`, `node`, `jq`, `sed`, `awk`, inline shell heredocs) are a last resort for user-owned edits and require explicit user approval after the trade-offs (state bypass, opaque diff, no interruption point) are surfaced. **Canonical source of truth:** [author/CAPABILITY.md — Node ownership](references/author/CAPABILITY.md#node-ownership--who-authors-the-node) (full table); [author/editing-operations.md — Tool Selection Ladder](references/author/references/editing-operations.md#tool-selection-ladder) (per-operation ladder).
84
87
  10. **Batch tool calls into one assistant turn whenever data dependencies allow — minimize wall-clock round-trips.** A typical greenfield build is **3 turns**, not 10+: (T1) one chained `Bash` for scaffold + registry pull + CLI-owned `node add`, in parallel with `registry get` and `Read` calls for any extra discovery; (T2) one `Read` of the scaffolded `.flow` in parallel with the `Edit` / `Write` calls that add the End node and wire edges; (T3) one chained `Bash` for `node configure && validate && format`. Within an assistant message: chain sequential `uip` calls with `&&` in a single `Bash`, and emit independent `Bash` / `Read` / `Edit` calls as parallel tool uses. Only split turns where a later call truly depends on an earlier call's stdout or on a file mutation. See [author/references/greenfield.md — Three-turn execution map](references/author/references/greenfield.md#three-turn-execution-map) for the canonical pattern.
85
88
 
86
89
  ## Anti-patterns (universal)
@@ -4,7 +4,7 @@ Capability index for building new flows (greenfield) and editing existing flows
4
4
 
5
5
  > **Where you came from / where to go next.** Author is upstream of Operate (build the flow → ship it) and upstream of Diagnose only via Operate (build → run → diagnose). Publish/run/lifecycle lives in [operate/CAPABILITY.md](../operate/CAPABILITY.md); fault triage lives in [diagnose/CAPABILITY.md](../diagnose/CAPABILITY.md).
6
6
  >
7
- > **Inherits universal rules from [SKILL.md](../../SKILL.md)** — `--output json` + prefer `--output-filter` for extraction, no `flow debug` without consent, resource discovery order, never invoke other skills automatically, AskUserQuestion dropdown pattern, solution layout, **plain-English narration + granular `TodoWrite` (opt-in — silent by default; engage when the user asks for verbosity)**. The rules below are author-scoped and apply on top.
7
+ > **Inherits universal rules from [SKILL.md](../../SKILL.md)** — `--output json` + prefer `--output-filter` for extraction, no `flow debug` without consent, resource discovery order, never invoke other skills automatically, dropdown question pattern, solution layout, **plain-English narration + granular progress list (opt-in — silent by default; engage when the user asks for verbosity)**. The rules below are author-scoped and apply on top.
8
8
 
9
9
  ## When to use this capability
10
10
 
@@ -58,7 +58,7 @@ If you find yourself hand-writing `inputs.detail`, a `=jsonString:` blob, or `bi
58
58
  2. **ALWAYS follow the relevant plugin in [plugins/](references/plugins/) for every node type.** Each plugin has a `planning.md` (when to use, selection heuristics, ports) and `impl.md` (registry validation, JSON structure, CLI commands, configuration, debug). For connector nodes, the [connector](references/plugins/connector/impl.md) plugin covers connection binding, enriched metadata, and field resolution — required before building. Without this, node configuration will be wrong — errors that `flow validate` does not catch.
59
59
  3. **Read the relevant Integration Service reference doc before any `uip is ...` call.** Two non-overlapping contracts:
60
60
  - **Read [/uipath:uipath-platform — connections.md](../../../uipath-platform/references/integration-service/connections.md) before any `uip is connections ...` call.** Applies to every connector activity, connector trigger, and managed HTTP node in connected mode. Single source of truth for command syntax, selection (including the personal-workspace auto-select rule), folder scoping, BYOA filtering, empty-result recovery, and ping verification. **If no healthy connection exists after following its recovery flow, STOP** and surface it in **Open Questions** during planning.
61
- - **Read [/uipath:uipath-platform — resources.md](../../../uipath-platform/references/integration-service/resources.md) before any `uip is resources run ...` call.** Applies to every reference-field lookup (Slack user IDs, Jira project keys, Outlook folder IDs, etc.). Single source of truth for the `Data.Pagination.HasMore` / `NextPageToken` contract and the `--query "nextPage=<token>"` loop. **Complete the pagination loop before reporting not-found** — do NOT abandon mid-loop to try alternative endpoints, `where=` filters the connector may not support, or AskUserQuestion. Plugin files cover node-specific configuration that follows connection binding: [connector/impl.md](references/plugins/connector/impl.md), [connector-trigger/impl.md](references/plugins/connector-trigger/impl.md), [http/impl.md](references/plugins/http/impl.md).
61
+ - **Read [/uipath:uipath-platform — resources.md](../../../uipath-platform/references/integration-service/resources.md) before any `uip is resources run ...` call.** Applies to every reference-field lookup (Slack user IDs, Jira project keys, Outlook folder IDs, etc.). Single source of truth for the `Data.Pagination.HasMore` / `NextPageToken` contract and the `--query "nextPage=<token>"` loop. **Complete the pagination loop before reporting not-found** — do NOT abandon mid-loop to try alternative endpoints, `where=` filters the connector may not support, or asking the user. Plugin files cover node-specific configuration that follows connection binding: [connector/impl.md](references/plugins/connector/impl.md), [connector-trigger/impl.md](references/plugins/connector-trigger/impl.md), [http/impl-connector.md](references/plugins/http/impl-connector.md).
62
62
  4. **Edit `<ProjectName>.flow` only** — other generated files (`bindings_v2.json`, `entry-points.json`, `operate.json`, `package-descriptor.json`) are managed by the CLI and may be overwritten. To declare flow inputs/outputs, add variables in the `.flow` file (see [shared/file-format.md](../shared/file-format.md)).
63
63
  5. **`targetPort` is required on every edge** — `validate` rejects edges without it.
64
64
  6. **Every node type needs a `definitions` entry** — copy from `uip maestro flow registry get <node-type>` output. Never hand-write definitions. The definition is the sole source for BPMN type (`model.type`), serviceType, event definitions, and binding/context templates — none of that belongs on the instance.
@@ -67,7 +67,7 @@ If you find yourself hand-writing `inputs.detail`, a `=jsonString:` blob, or `bi
67
67
  9. **Manage variables with `Edit` against the `.flow` file** — there are no CLI commands for variable management. Use `Edit` to add/remove/update entries in the `variables` section of the `.flow` file. See [shared/variables-and-expressions.md](../shared/variables-and-expressions.md).
68
68
  10. **Every `out` variable must be mapped on every reachable End node** — missing output mappings cause runtime errors. See [shared/variables-and-expressions.md](../shared/variables-and-expressions.md).
69
69
  11. **`=js:` prefix is REQUIRED on every `$vars`/`$metadata`/`$self` reference in a value field** — not on condition expressions (decision, switch, HTTP branch), which are auto-evaluated as JS. Without it, the BPMN runtime sees a literal string and `flow validate` fails with MST-9107. See [shared/node-output-wiring.md](../shared/node-output-wiring.md) for the canonical rule and per-node-type field reference, and [shared/variables-and-expressions.md](../shared/variables-and-expressions.md) for the expression system.
70
- 12. **Always run `flow format` after edits** — `uip maestro flow format <ProjectName>.flow` is the canonical layout step. Format arranges nodes horizontally, sets every node's `size` to `{ "width": 96, "height": 96 }`, and recurses into subflows (`subflows[<id>].layout`). Skipping format is the most common cause of misshapen rectangles in Studio Web.
70
+ 12. **Always run `flow format` after edits** — `uip maestro flow format <ProjectName>.flow` is the canonical layout step. Format arranges nodes horizontally, sets each node's `size` by its canvas shape (inline agents → 288×96, containers → 560×320, everything else → 96×96), and recurses into subflows (`subflows[<id>].layout`). Skipping format is the most common cause of misshapen nodes in Studio Web.
71
71
  13. **Don't hand-write `layout.nodes` or `subflows[<id>].layout`** — these are owned by `flow format`. When authoring nodes, any placeholder `position` is fine (e.g. `{ x: 0, y: 0 }`); format rewrites it on save. Sticky notes (`type: "stickyNote"`) are the one exception — format preserves their custom size and position. See [shared/file-format.md — Layout](../shared/file-format.md#layout).
72
72
  14. **Every data-producing node MUST have a matching `variables.nodes[]` entry — this is what makes `$vars.<sourceNodeId>.output` resolve.** The BPMN emitter walks `variables.nodes[]` to write the process-level `<uipath:inputOutput>` declarations the runtime needs. The instance `outputs` block is **only** consumed by BPMN serialization on end-style nodes (to map workflow-level `out` variables); for action / trigger nodes it is documentation, not behavior. Skipping `variables.nodes[]` produces a flow that passes `flow validate` but resolves `$vars.<sourceNodeId>.output` to `undefined` at runtime (MST-9972). **Always run `uip maestro flow format` after structural edits — it regenerates `variables.nodes[]` from `nodes[]` + `definitions[]`** (matching what `uip maestro flow node add` and the canvas save path do), so this becomes self-healing as long as you `format`. See [shared/file-format.md — Node outputs](../shared/file-format.md#node-outputs).
73
73
  15. **Node instances have no `model` block** — BPMN type, serviceType, version, event definitions, and binding/context templates live in the node's **definition** (in the top-level `definitions[]` array, copied verbatim from `registry get`). The runtime hydrates these from the definition at serialization time. Instance-specific identity fields live under `inputs`: `entryPointId`, `isDefaultEntryPoint` (triggers), `color`/`content` (sticky notes), and `source` (every inline-agent-related node — both `uipath.agent.autonomous` and every attached `uipath.agent.resource.*` node use `inputs.source = <UUID>`; their definitions declare `model.source: true` and flow-core hoists onto the instance).
@@ -128,7 +128,7 @@ If you find yourself hand-writing `inputs.detail`, a `=jsonString:` blob, or `bi
128
128
  - **Never update `in` variables** — only `inout` variables can be modified via `variableUpdates`. Input variables are read-only after flow start.
129
129
  - **Never reference parent-scope `$vars` inside a subflow** — subflows have isolated scope. Pass values explicitly via subflow inputs.
130
130
  - **Never use `core.action.http` (v1)** — the v1 node is deprecated for all HTTP requests (both connector-authenticated and manual). For connector-auth, v1's `authenticationType: "connection"` input does not pass IS credentials at runtime. Use `core.action.http.v2` (Managed HTTP Request) for every HTTP node. See [http/planning.md](references/plugins/http/planning.md).
131
- - **Never hand-write `inputs.detail` for managed HTTP nodes** — run `uip maestro flow node configure` to populate the `inputs.detail` structure, generate `bindings_v2.json`, and create the connection resource file. Hand-written configurations miss the `essentialConfiguration` block and fail at runtime.
131
+ - **Never hand-write `definitions[]` or `inputs.*` for managed HTTP nodes** — use `uip maestro flow node add` (with `--input` for `branches` / `timeout` / `retryCount`) and `uip maestro flow node configure` (for `inputs.detail`). These are the only supported authoring paths. Hand-written `definitions[]` strips required manifest fields; hand-written `inputs.detail` misses `essentialConfiguration` and fails at runtime. See [http/impl.md](references/plugins/http/impl.md).
132
132
  - **Never write `$vars.X` (or `$metadata.X`, `$self.X`) without `=js:` in value fields** — `flow validate` flags this as MST-9107. See rule #11 above and [shared/node-output-wiring.md](../shared/node-output-wiring.md) for the per-node-type field reference.
133
133
  - **Never reuse a reference ID (mailbox folder, Slack channel, Jira project, Google Sheet, etc.) from a prior flow or session** — reference IDs are scoped to the specific authenticated account behind the connection. A `parentFolderId` from one Outlook mailbox is invalid in another; a Slack channel ID from one workspace is invalid in another. A reused ID passes `flow validate` and `node configure` cleanly, then faults silently at runtime with no resolvable error. Always re-resolve via `uip is resources run list <connector-key> <objectName> --connection-id <CURRENT_CONNECTION_ID> --output json` against the connection bound to this flow — do not paste a value you saw in another flow. See [connector/impl.md — Step 4](references/plugins/connector/impl.md) and [connector-trigger/impl.md — Step 3](references/plugins/connector-trigger/impl.md).
134
134
  - **Never include `[*]` literally in a connector `bodyParameters` / `queryParameters` / `pathParameters` key** — `[*]` in `requestFields[].name` is an array marker, not part of the wire key. Strip it and pass an array value of the field's `dataType` (e.g. `"fields.labels[*]"` → `"fields.labels": ["a", "b"]`). Supported only when `[*]` is the name suffix; `[*].` (segments after) is not authorable. `flow validate` misses this; runtime rejects the key. See [connector/impl.md — Step 6b](references/plugins/connector/impl.md) for the full table including expression-value handling.
@@ -4,13 +4,28 @@ Recipe-driven journey for targeted changes to an existing `.flow` file. Author t
4
4
 
5
5
  > **Greenfield (creating a new flow) uses a different journey.** If the `.flow` file does not yet exist, see [greenfield.md](greenfield.md) instead.
6
6
 
7
+ ## Converting an existing project to Maestro
8
+
9
+ A frequent request: *"Can my existing project — e.g. a low-code agent plus a coded (C#) RPA rule engine — become a Maestro flow, and what would the structure look like?"*
10
+
11
+ There is **no automatic "turn this project into a flow" conversion, and you shouldn't want one.** You don't rewrite the project into a flow — you **re-host the orchestration and keep the parts**:
12
+
13
+ 1. **Keep the executors as-is.** Existing coded/RPA components and any existing agent stay their own artifacts. They are **not** rewritten into Maestro — they become **resource nodes** the flow calls (`uipath.core.rpa-workflow.*`, `uipath.core.agent.*`). See the relevant plugin's `planning.md`.
14
+ 2. **Lift only the orchestration into Maestro.** The control flow currently implicit in the rule engine (what runs first, what waits, what branches) becomes the explicit flow topology — trigger → steps → decisions → end.
15
+ 3. **Make every wait a first-class node.** Anything the old code did with sleeps, polling loops, or "check again later" becomes a Maestro wait/delay/HITL/`create-and-wait` node — that visibility is the whole reason to move.
16
+ 4. **Publish (or keep in-solution), then reference.** Each executor is published or kept as a sibling project so the flow's registry resolves it (`registry list --local` for in-solution).
17
+
18
+ Resulting structure: a **thin flow** that is mostly trigger + waits + branches, delegating the real work to the existing RPA and agent artifacts. To author it, treat the flow as greenfield ([greenfield.md](greenfield.md)) with those artifacts discovered as resource nodes during [planning-arch.md](planning-arch.md).
19
+
20
+ > **Migrate when** the project has long waits, human approvals, parallel branches, or needs per-case visibility. **Don't migrate** a short, fully-automated, fire-once script — Maestro adds orchestration overhead it won't repay. Apply the [Is Maestro the Right Home?](planning-arch.md#before-you-build-is-maestro-the-right-home) gate first.
21
+
7
22
  ## Read this first
8
23
 
9
24
  > **Before each node you add or modify, classify it as user-owned or CLI-owned (see [CAPABILITY.md — Node ownership](../CAPABILITY.md#node-ownership--who-authors-the-node)). Connector activities, connector triggers, and `core.action.http.v2` are CLI-only — use `uip maestro flow node add` + `uip maestro flow node configure`, never Edit. Hand-writing these will fail `flow validate`.** The same risk applies when *adding* a connector node to an existing flow as when building a new one.
10
25
 
11
26
  **[editing-operations.md](editing-operations.md)** — `Edit` is the default tool for in-place changes to user-owned nodes; `Write` only when ≥70% of nodes change. For CLI-owned nodes use the relevant plugin's `impl.md` configuration workflow (`node add` + `node configure`). Read the strategy selection matrix before any modification.
12
27
 
13
- > **Self-check before each mutation:** name the tool you're about to use. If the answer isn't `Edit`, `Write`, or `uip maestro flow ...` — STOP and ask the user via `AskUserQuestion` (per the dropdown rule in [SKILL.md](../../../SKILL.md)). `python`, `node`, `jq`, `sed`, `awk`, and shell heredocs are a last resort and require explicit user approval after you've surfaced the trade-offs. See [editing-operations.md — Tool Selection Ladder](editing-operations.md#tool-selection-ladder).
28
+ > **Self-check before each mutation:** name the tool you're about to use. If the answer isn't `Edit`, `Write`, or `uip maestro flow ...` — STOP and ask the user (per the dropdown question rule in [SKILL.md](../../../SKILL.md)). `python`, `node`, `jq`, `sed`, `awk`, and shell heredocs are a last resort and require explicit user approval after you've surfaced the trade-offs. See [editing-operations.md — Tool Selection Ladder](editing-operations.md#tool-selection-ladder).
14
29
 
15
30
  ## Common edits
16
31
 
@@ -61,7 +76,7 @@ When you finish editing the flow, report to the user:
61
76
  4. **Format status** — confirm `flow format` was run
62
77
  5. **Mock placeholders** — list any `core.logic.mock` nodes that need to be replaced
63
78
  6. **Missing connections** — any connector nodes that need connections the user must create
64
- 7. **What's next** — use `AskUserQuestion` to present the dropdown below (see the AskUserQuestion dropdown rule in [SKILL.md](../../../SKILL.md))
79
+ 7. **What's next** — ask the user, presenting the dropdown below (see the dropdown question rule in [SKILL.md](../../../SKILL.md))
65
80
 
66
81
  ### What's next dropdown
67
82
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  This is **not** a structural editing guide. Use direct `.flow` authoring via [editing-operations-json.md](editing-operations-json.md) for OOTB node/edge/variable CRUD, trigger swaps, output mapping, subflows, inline-agent node/wiring, non-connector resources, and in-place updates.
4
4
 
5
- > **When to use this file:** only for CLI-managed carve-outs documented by a plugin: connector activities, connector triggers, and managed HTTP configuration. If you landed here while adding/removing/wiring OOTB nodes, inline-agent nodes, non-connector resources, or other structural graph elements, go back to the Edit / Write guide.
5
+ > **When to use this file:** only for CLI-managed carve-outs documented by a plugin: connector activities, connector triggers, and managed HTTP nodes (both `node add` and `node configure`). If you landed here while adding/removing/wiring OOTB nodes, inline-agent nodes, non-connector resources, or other structural graph elements, go back to the Edit / Write guide.
6
6
 
7
7
  The primitive commands below are support commands for carve-out workflows only. They are not an opt-in path for non-carve-out structural edits.
8
8
 
@@ -4,7 +4,7 @@ All flow file modifications via the `Edit` and `Write` tools (read-modify-write
4
4
 
5
5
  > **Apply every recipe in this file with the `Edit` tool (default) or the `Write` tool (only when ≥70% of nodes change).** Each recipe shows the JSON payload that goes into the `new_string` parameter of an `Edit` call. `python`, `node`, `jq`, `sed`, `awk`, and shell heredocs are a last resort for mutations and require explicit user approval after you've surfaced the trade-offs — see SKILL.md rule on scripted mutations and [editing-operations.md — Why not Python / Node / jq / sed?](editing-operations.md#why-not-python--node--jq--sed).
6
6
  >
7
- > **When to use this strategy:** Edit / Write is required for all non-carve-out `.flow` edits. Use Flow CLI only for connector activity, connector-trigger, and managed HTTP carve-outs documented by their plugins. Inline-agent project lifecycle uses `uip agent init --inline-in-flow` / `uip agent validate --inline-in-flow` / `uip agent migrate --inline-in-flow`, but the `uipath.agent.autonomous` node and edges are authored with this guide. See [editing-operations.md](editing-operations.md) for the strategy selection matrix.
7
+ > **When to use this strategy:** Edit / Write is required for all non-carve-out `.flow` edits. Use Flow CLI only for connector activity, connector-trigger, and managed HTTP carve-outs documented by their plugins. Inline-agent project lifecycle uses `uip agent init --inline-in-flow` / `uip agent refresh --inline-in-flow` / `uip agent validate --inline-in-flow`, but the `uipath.agent.autonomous` node and edges are authored with this guide. See [editing-operations.md](editing-operations.md) for the strategy selection matrix.
8
8
 
9
9
  ---
10
10
 
@@ -28,7 +28,7 @@ When editing the `.flow` file with `Edit` / `Write`, **you** are responsible for
28
28
  Before editing the `.flow` file, ensure each of the following is handled. These are the concerns the CLI used to manage automatically; under the Edit / Write default, **you** are responsible for them.
29
29
 
30
30
  1. **Locate the canonical `.flow` file.** Before any `Edit` / `Write`, find the flow project directory — it is the directory that contains `project.uiproj`. The canonical `.flow` lives **next to** that `project.uiproj`, not at the solution root. Commands like `uip solution init <Name>` + `uip maestro flow init <Name>` create nested paths (`<Name>/<Name>/project.uiproj`); the `.flow` you must edit is `<Name>/<Name>/<Name>.flow`, not `<Name>/<Name>.flow`. Run `find . -name project.uiproj -type f` and pin every `Edit` / `Write` call to the sibling file. `uip maestro flow validate <PATH>.flow` will accept a misplaced file, so validation alone does **not** confirm the right target — only the colocation with `project.uiproj` does.
31
- 2. **Definitions and versions.** For every new node type, run `uip maestro flow registry get <type> --output json`. Copy the returned node definition object **verbatim** into `definitions[]` — one entry per unique `type:typeVersion`. Depending on CLI/plugin version, the node definition may appear as `Data.Node` or as the top-level object containing fields such as `nodeType`, `version`, and `handleConfiguration`; copy that node object, not the surrounding `Result` / `Code` envelope. Then set each node instance's `typeVersion` to the exact copied definition `version` value. The validator matches `type:typeVersion` exactly; `typeVersion: "1.0.0"` does not match a registry definition with `"version": "1.0"`. Never hand-write or paraphrase definitions (see "Every node type needs a `definitions` entry" in [the Author capability index](../CAPABILITY.md)). <!-- version-check-skip --> (illustrates the x.y vs x.y.z mismatch rule; the literals are anti-examples, not a pinned current value)
31
+ 2. **Definitions and versions.** For every new node type, run `uip maestro flow registry get <type> --output json`. Copy the returned node definition object **verbatim** into `definitions[]` — one entry per unique `type:typeVersion`. Depending on CLI/plugin version, the node definition may appear as `Data.Node` or as the top-level object containing fields such as `nodeType`, `version`, and `handleConfiguration`; copy that node object, not the surrounding `Result` / `Code` envelope. Then set each node instance's `typeVersion` to match the copied definition's `version` exactly — string match, no normalization. Never hand-write or paraphrase definitions (see "Every node type needs a `definitions` entry" in [the Author capability index](../CAPABILITY.md)). For node types with a documented `uip maestro flow node add` carve-out (managed HTTP, connector activities, connector triggers), use the CLI — see [http/impl.md — Step 1](plugins/http/impl.md#add-the-node).
32
32
  3. **Unique node ID.** Pick a camelCase ID that does not collide with existing node IDs. Prefer meaningful names (`fetchUsers`, `filterActive`) since they become part of every `$vars.<nodeId>.*` expression.
33
33
  4. **`sourcePort` and `targetPort` on every edge.** Omitting `targetPort` is the #1 validation error (see "`targetPort` is required on every edge" in [the Author capability index](../CAPABILITY.md)). Use `sourcePort`, never `sourceHandle`; `sourceHandle` is not part of the `.flow` edge schema and produces a precise schema error such as `[error] [edges[N].sourcePort] Invalid input: expected string, received undefined` (the path tells you exactly which edge entry is missing the `sourcePort` key). Look up ports in the relevant plugin's `planning.md` or in [file-format.md — Standard ports](../../shared/file-format.md). If an edge uses `sourcePort: "error"`, the source node must also have `inputs.errorHandlingEnabled: true`; `uip maestro flow format` self-heals this, but direct JSON edits must set it.
34
34
  5. **Node outputs block (End / Terminate only).** End-style nodes consume their `outputs` block at runtime to map workflow-level `out` variables — see [end/impl.md](plugins/end/impl.md). For action / trigger nodes the instance `outputs` block is **not** consumed by BPMN serialization; the runtime reads the manifest's `outputDefinition` instead. Authoring an action-node `outputs` block matching the manifest is fine and is what the canonical examples show, but adding it does **not** make `$vars.<sourceNodeId>.output` resolve downstream — that contract is `variables.nodes[]` (next item).
@@ -183,7 +183,7 @@ Reach for `jq` / `python3` only when JMESPath cannot express the operation (mult
183
183
  }
184
184
  ```
185
185
 
186
- **Layout rule:** Don't compute coordinates by hand — run `uip maestro flow format <ProjectName>.flow` after edits. Format arranges nodes horizontally, sets size to `{ "width": 96, "height": 96 }`, and recurses into subflows.
186
+ **Layout rule:** Don't compute coordinates by hand — run `uip maestro flow format <ProjectName>.flow` after edits. Format arranges nodes horizontally, sets each node's size by its canvas shape (inline agents → 288×96, containers → 560×320, everything else → 96×96), and recurses into subflows.
187
187
 
188
188
  ### Delete a node
189
189
 
@@ -4,12 +4,12 @@ Strategy selection and shared concepts for modifying `.flow` files. Direct `.flo
4
4
 
5
5
  ## Tool Selection Ladder
6
6
 
7
- > **Pick the lowest-numbered tool that fits the operation.** If no rung fits, stop and ask the user via `AskUserQuestion`. Scripting languages (`python`, `node`, `jq`, `sed`, `awk`, shell heredocs) are a last resort and require explicit user approval — see rung 4.
7
+ > **Pick the lowest-numbered tool that fits the operation.** If no rung fits, stop and ask the user. Scripting languages (`python`, `node`, `jq`, `sed`, `awk`, shell heredocs) are a last resort and require explicit user approval — see rung 4.
8
8
  >
9
9
  > 1. **CLI-managed carve-outs only** → use the relevant plugin workflow for connector activity, connector-trigger, or managed HTTP operations when the CLI populates product-managed state (`inputs.detail`, `bindings_v2.json`, connection resources).
10
10
  > 2. **Any structural `.flow` mutation** (add/delete OOTB nodes, add/delete edges, add/edit variables, in-place value tweaks, output mapping, subflows, scheduled triggers, non-connector resources, inline-agent node/wiring) → `Edit`.
11
11
  > 3. **Wholesale file rewrite** (only when ≥70% of nodes change, e.g., scaffolding from a template) → `Write`.
12
- > 4. **Anything else** → STOP and ask the user via `AskUserQuestion`. A scripting language is a last resort: surface the trade-offs (state bypass, opaque diff, no interruption point) and present finite options — typically **Use `Edit` instead** / **Use `Write` (full rewrite)** / **Approve the script for this change** / **Cancel** / **Something else**. Only proceed after the user explicitly approves that path for this specific change. See the AskUserQuestion dropdown rule in [SKILL.md](../../../SKILL.md).
12
+ > 4. **Anything else** → STOP and ask the user. A scripting language is a last resort: surface the trade-offs (state bypass, opaque diff, no interruption point) and present finite options — typically **Use `Edit` instead** / **Use `Write` (full rewrite)** / **Approve the script for this change** / **Cancel** / **Something else**. Only proceed after the user explicitly approves that path for this specific change. See the dropdown question rule in [SKILL.md](../../../SKILL.md).
13
13
 
14
14
  ### Why not Python / Node / jq / sed?
15
15
 
@@ -17,11 +17,11 @@ Strategy selection and shared concepts for modifying `.flow` files. Direct `.flo
17
17
  - `Edit` shows a line-by-line diff in the transcript; a script is an opaque payload. The user reviews tool calls, not script bodies.
18
18
  - `Edit` calls are atomic per-call. A coordinated multi-section change is *not* one transaction — it's a sequence of `Edit` calls the user can interrupt between. Treating it as a single Python script removes that interruption point.
19
19
 
20
- If the change feels too tangled for a sequence of `Edit` calls, use `Write` for the whole file or stop and ask the user via `AskUserQuestion` (see rung 4 above) — see the `Edit`/`Write` recipes in [editing-operations-json.md](editing-operations-json.md) and the SKILL.md rule on forbidden tools.
20
+ If the change feels too tangled for a sequence of `Edit` calls, use `Write` for the whole file or stop and ask the user (see rung 4 above) — see the `Edit`/`Write` recipes in [editing-operations-json.md](editing-operations-json.md) and the SKILL.md rule on forbidden tools.
21
21
 
22
22
  ## Required Strategy
23
23
 
24
- > **Use Edit / Write for all non-carve-out `.flow` edits.** Flow CLI is not an opt-in alternative for OOTB structural edits. Use CLI only for connector activity, connector-trigger, and managed HTTP carve-outs. Inline-agent project lifecycle commands (`uip agent init --inline-in-flow`, `uip agent validate --inline-in-flow`, `uip agent migrate --inline-in-flow`) are allowed for the agent project, but the `uipath.agent.autonomous` flow node and edges are authored directly in `.flow` JSON.
24
+ > **Use Edit / Write for all non-carve-out `.flow` edits.** Flow CLI is not an opt-in alternative for OOTB structural edits. Use CLI only for connector activity, connector-trigger, and managed HTTP carve-outs. Inline-agent project lifecycle commands (`uip agent init --inline-in-flow`, `uip agent refresh --inline-in-flow`, `uip agent validate --inline-in-flow`) are allowed for the agent project, but the `uipath.agent.autonomous` flow node and edges are authored directly in `.flow` JSON.
25
25
 
26
26
  | Strategy | Guide | When to use |
27
27
  |----------|-------|-------------|
@@ -37,12 +37,12 @@ Use this table to determine which strategy to follow for each operation. **Edit
37
37
  | Operation | Default | Alternative | Notes |
38
38
  |-----------|---------|-------------|-------|
39
39
  | Add a node | **Edit / Write** | — | Flow CLI is not an option for non-carve-out node CRUD. |
40
- | Add a managed HTTP node | **Edit / Write** for the node, then CLI `node configure` | — | Add the `core.action.http.v2` node directly; use the CLI carve-out only for `inputs.detail` configuration. |
40
+ | Add a managed HTTP node | **CLI** (carve-out) `node add`, then CLI `node configure` | — | Use `uip maestro flow node add <file> core.action.http.v2 ...` to add the node. Do not hand-author `definitions[]` for this node type. See [http/impl.md — Step 1](plugins/http/impl.md#add-the-node). |
41
41
  | Add a HITL QuickForm node | **Edit / Write** | — | Wire `completed` port after adding. See [hitl/impl.md](plugins/hitl/impl.md). |
42
42
  | Delete a node | **Edit / Write** | — | |
43
43
  | Add an edge | **Edit / Write** | — | Remember `targetPort` (Rule #6). |
44
44
  | Delete an edge | **Edit / Write** | — | |
45
- | Update node inputs | **Edit** | — | In-place edit; preserves node ID and `$vars`. |
45
+ | Update node inputs | **Edit** | — | In-place edit; preserves node ID and `$vars`. **Exception:** managed HTTP `inputs.branches` / `timeout` / `retryCount` must be set at `node add --input` time — to change them, `uip maestro flow node remove` and re-add with new `--input`. |
46
46
  | Add/edit workflow variable | **Edit** | — | Edit-only; CLI does not support. |
47
47
  | Add variable update | **Edit** | — | Edit-only; CLI does not support. |
48
48
  | Map outputs on End node | **Edit** | — | Edit-only. |
@@ -52,9 +52,9 @@ Use this table to determine which strategy to follow for each operation. **Edit
52
52
  | Insert node between two existing nodes | **Edit** | — | |
53
53
  | Insert a decision branch | **Edit** | — | |
54
54
  | Remove a node and reconnect | **Edit** | — | |
55
- | **Configure a connector node** | **CLI** (carve-out) | Edit (fallback) | `uip maestro flow node configure --detail` auto-populates `inputs.detail` + `bindings_v2.json`. |
56
- | **Configure a connector trigger** | **CLI** (carve-out) | Edit (fallback) | Same as above. |
57
- | **Configure a managed HTTP node** | **CLI** (carve-out) | Edit (fallback) | Same as above for managed HTTP `inputs.detail` and connection resources. |
55
+ | **Configure a connector node** | **CLI** (carve-out) | — | `uip maestro flow node configure --detail` auto-populates `inputs.detail` + `bindings_v2.json`. Hand-authored `inputs.detail` skips `essentialConfiguration` and fails at runtime — no Edit fallback. |
56
+ | **Configure a connector trigger** | **CLI** (carve-out) | — | Same as above. |
57
+ | **Configure a managed HTTP node** | **CLI** (carve-out) | — | Same as above for managed HTTP `inputs.detail` and connection resources. |
58
58
  | Add an inline agent node | **Edit / Write** | — | Scaffold the inline agent project with `uip agent init --inline-in-flow`, then add the `uipath.agent.autonomous` node and edges directly. |
59
59
 
60
60
  ### Mixing strategies
@@ -75,7 +75,7 @@ When you do need it, emit `uip login status --output json` as a parallel `Bash`
75
75
 
76
76
  > **A Flow project cannot exist outside a solution** (universal rule in [SKILL.md](../../../SKILL.md)). Scaffold or select a solution (Step 2a) BEFORE running `uip maestro flow init` (Step 2b). Skipping the solution step produces a single-nested `<Project>/<Project>.flow` layout that fails Studio Web upload and packaging. The correct layout is **always** `<Solution>/<Project>/<Project>.flow` (double-nested — see the tree after Step 2c).
77
77
 
78
- Check the current directory for existing `.uipx` files. If existing solutions are found, use `AskUserQuestion` to present a dropdown with one option per discovered `.uipx`, a **"Create a new solution"** option, and **"Something else"** as the last option (for a custom path). If no existing solutions are found, create a new one automatically. See the AskUserQuestion dropdown rule in [SKILL.md](../../../SKILL.md).
78
+ Check the current directory for existing `.uipx` files. If existing solutions are found, ask the user, presenting a dropdown with one option per discovered `.uipx`, a **"Create a new solution"** option, and **"Something else"** as the last option (for a custom path). If no existing solutions are found, create a new one automatically. See the dropdown question rule in [SKILL.md](../../../SKILL.md).
79
79
 
80
80
  - If the user specifies an existing `.uipx` file path or solution name, use that (skip to Step 2b)
81
81
  - Otherwise, create a new solution (Step 2a)
@@ -125,7 +125,7 @@ The `cd` is required. Running `uip maestro flow init` from outside the solution
125
125
 
126
126
  ### 2c. Verify the project is registered in the solution
127
127
 
128
- When `uip maestro flow init` is run from inside a solution directory (Step 2b), it **auto-registers** the project with the nearest parent `.uipx`. The success envelope reports this in `Data.SolutionRegistration`:
128
+ When `uip maestro flow init` is run from inside a solution directory (Step 2b), it **auto-registers** the project with the nearest parent `.uipx` (pass `--skip-solution-registration` to skip this). The success envelope always reports the outcome in `Data.SolutionRegistration`:
129
129
 
130
130
  ```json
131
131
  {
@@ -144,9 +144,9 @@ When `uip maestro flow init` is run from inside a solution directory (Step 2b),
144
144
  }
145
145
  ```
146
146
 
147
- If `Data.SolutionRegistration.Status` is `Registered` or `AlreadyRegistered`, **you are done** with this step — proceed to the layout check.
147
+ If `Data.SolutionRegistration.Status` is `Registered` or `AlreadyRegistered`, **you are done** with this step — proceed to the layout check. If it is `OptedOut`, you passed `--skip-solution-registration` and the skip was intentional.
148
148
 
149
- **Fallback** — only if `Status` is `Skipped` or `Failed` (e.g., `init` was run outside the solution directory and produced a single-nested layout, or the `.uipx` write failed): wire the project manually.
149
+ **Fallback** — when `Status` is `NotInSolution` (no parent `.uipx` found — `init` was run outside the solution directory and produced a single-nested layout), `Skipped` (ambiguous discovery), or `Failed` (the `.uipx` write failed): wire the project manually.
150
150
 
151
151
  ```bash
152
152
  uip solution project add \
@@ -216,7 +216,7 @@ Then pick the first match down this ladder:
216
216
  1. **Curated connector activity** (`uipath.connector.<key>.<op>` in the results) → use it.
217
217
  2. **Connector exists but no activity for what you need** → `core.action.http.v2` (connector mode).
218
218
  3. **No connector at all** → `core.action.http.v2` (manual mode).
219
- 4. **No API** (desktop app) → [rpa](references/plugins/rpa/planning.md).
219
+ 4. **No API** (desktop app) → [rpa](plugins/rpa/planning.md).
220
220
 
221
221
  Manual HTTP is the **bottom of the ladder** — only the search returning no connector authorizes it. Picking it without searching is the brand-name shortcut forbidden by [SKILL.md rule #3](../../../SKILL.md#critical-rules-universal).
222
222
 
@@ -224,10 +224,11 @@ Manual HTTP is the **bottom of the ladder** — only the search returning no con
224
224
 
225
225
  ```bash
226
226
  uip maestro flow registry list --local --output json # discover sibling projects in the same .uipx solution
227
+ uip maestro flow registry search "<keyword>" --local --output json # keyword search across in-solution nodes
227
228
  uip maestro flow registry get "<node-type>" --local --output json # get full manifest for a local node
228
229
  ```
229
230
 
230
- Run from inside the flow project directory. Returns the same manifest format as the tenant registry. Use `--local` to wire in-solution resources (RPA, agents, flows, API workflows) without publishing them first.
231
+ Run from inside the flow project directory. Returns the same manifest format as the tenant registry. Use `--local` to wire in-solution resources (RPA, agents, flows, API workflows) without publishing them first. `search --local` omits `AvailableOnTenant` — drop it from `--output-filter` projections.
231
232
 
232
233
  ## Step 4 — Build the flow **[T2]**
233
234
 
@@ -240,7 +241,7 @@ Run from inside the flow project directory. Returns the same manifest format as
240
241
  - Edit `nodes[]` — add the End node (and any other user-owned nodes).
241
242
  - Edit `definitions[]` — paste the End definition verbatim from T1's `registry get core.control.end` output.
242
243
  - Edit `edges[]` — wire `trigger → <httpNode> → end`. End-node `outputs` mapping goes here too if you declared an `out` variable in `variables.globals`.
243
- - Edit `layout.nodes` — placeholder `{ position: { x: 0, y: 0 }, size: { width: 96, height: 96 }, collapsed: false }` per new node; `format` rewrites positions in T3.
244
+ - Edit `layout.nodes` — placeholder `{ position: { x: 0, y: 0 }, size: { width: 96, height: 96 }, collapsed: false }` per new node; `format` rewrites both position and size (by node shape) in T3.
244
245
 
245
246
  `Write` of the whole file is allowed but token-costly on flows >~10 nodes — only fall back to `Write` when ≥70% of nodes change AND the file is small (see [editing-operations.md — Tool Selection Ladder](editing-operations.md#tool-selection-ladder)).
246
247
 
@@ -279,7 +280,7 @@ Edit `<ProjectName>.flow` directly in the project root. The `bindings_v2.json` f
279
280
 
280
281
  Read [editing-operations.md](editing-operations.md) for strategy selection and per-operation recipes.
281
282
 
282
- > **Self-check before each mutation:** name the tool you're about to use. If the answer isn't `Edit`, `Write`, or `uip maestro flow ...` — STOP and ask the user via `AskUserQuestion` (per the dropdown rule in [SKILL.md](../../../SKILL.md)). `python`, `node`, `jq`, `sed`, `awk`, and shell heredocs are a last resort and require explicit user approval after you've surfaced the trade-offs. See [editing-operations.md — Tool Selection Ladder](editing-operations.md#tool-selection-ladder).
283
+ > **Self-check before each mutation:** name the tool you're about to use. If the answer isn't `Edit`, `Write`, or `uip maestro flow ...` — STOP and ask the user (per the dropdown question rule in [SKILL.md](../../../SKILL.md)). `python`, `node`, `jq`, `sed`, `awk`, and shell heredocs are a last resort and require explicit user approval after you've surfaced the trade-offs. See [editing-operations.md — Tool Selection Ladder](editing-operations.md#tool-selection-ladder).
283
284
 
284
285
  For each node type, follow the relevant plugin's `impl.md` for node-specific inputs, JSON structure, and configuration. The operations guides cover the mechanics (how to add/remove/wire); the plugins cover the semantics (what inputs and model fields each node type needs).
285
286
 
@@ -295,6 +296,8 @@ uip maestro flow node configure "<ProjectName>.flow" "<httpNodeId>" --detail '<D
295
296
 
296
297
  `<DETAIL_JSON>` is node-type-specific — the schema is owned by each CLI-owned node's plugin, not duplicated here: HTTP → [http/impl.md](plugins/http/impl.md#critical-use-node-configure), connectors → [connector/impl.md](plugins/connector/impl.md), connector triggers → [connector-trigger/impl.md](plugins/connector-trigger/impl.md). Tail-append one `node configure` per CLI-owned node added in T1, using the node IDs captured from T1's chained output. Drop the entire `node configure` segment if no CLI-owned nodes exist.
297
298
 
299
+ > **The plugin `impl.md` is authoritative — follow its full procedure, not just its `--detail` schema, and let it override this turn map.** A plugin may prescribe steps the three-turn collapse does not show — most importantly a **pre-`configure` live fetch** whose output you must read before you can author `--detail` (the value depends on the live response, so it cannot be guessed or copied from a doc example). When `impl.md` defines such a step, run it in its **own turn before T3** and build `--detail` from its result; do not batch it into the chain, skip it, or hand-author the payload. An empty or static base response is expected for these steps and is not a signal the step is unavailable. This is general to every CLI-owned node type — defer to the owning `impl.md` rather than assuming static config.
300
+
298
301
  **On validate failure:** one `Edit` turn to fix, then re-chain `validate && format` in one Bash. Do not validate after every individual Edit during T2 — intermediate states are expected to be invalid.
299
302
 
300
303
  ### Common error categories
@@ -309,7 +312,7 @@ uip maestro flow node configure "<ProjectName>.flow" "<httpNodeId>" --detail '<D
309
312
  This is the last segment of the [canonical T3 chain](#canonical-t3-chain--issue-this-as-one-bash-call) above. After validation passes, format must run before publishing or debugging (see "Always run `flow format` after edits" in [the Author capability index](../CAPABILITY.md)). Format:
310
313
 
311
314
  - Arranges nodes horizontally (left-to-right) using ELK with `nodeSpacing: 96`, anchored to the leftmost node's original position
312
- - Sets every non-stickyNote node's `size` to `{ "width": 96, "height": 96 }` so Studio Web renders square nodes (skipping this leaves any non-96 dimensions intact and produces misshapen rectangles — the MST-9061 failure mode)
315
+ - Sets each non-stickyNote node's `size` by its canvas shape so Studio Web renders it correctly: inline agents (`shape: rectangle`) → `{ "width": 288, "height": 96 }`, containers (loops/groups) → `{ "width": 560, "height": 320 }`, everything else (incl. referenced `uipath.core.agent.<guid>`) → `{ "width": 96, "height": 96 }` (skipping this leaves stale dimensions intact and produces misshapen nodes — the MST-9061 failure mode)
313
316
  - Recurses into subflows and rewrites `subflows[<id>].layout`
314
317
  - Backfills missing `position`/`size` entries
315
318
 
@@ -329,7 +332,7 @@ When you finish building the flow, report to the user:
329
332
  4. **Format status** — confirm `flow format` was run
330
333
  5. **Mock placeholders** — list any `core.logic.mock` nodes that need to be replaced, and which skill to use
331
334
  6. **Missing connections** — any connector nodes that need connections the user must create
332
- 7. **What's next** — use `AskUserQuestion` to present the dropdown below (see the AskUserQuestion dropdown rule in [SKILL.md](../../../SKILL.md))
335
+ 7. **What's next** — ask the user, presenting the dropdown below (see the dropdown question rule in [SKILL.md](../../../SKILL.md))
333
336
 
334
337
  ### What's next dropdown
335
338