@uipath/skills 1.204.0 → 1.204.1

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 (191) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.cursor-plugin/plugin.json +1 -1
  4. package/CODEOWNERS +12 -14
  5. package/package.json +1 -1
  6. package/skills/uipath-agents/references/coded/embedding-in-flows.md +1 -3
  7. package/skills/uipath-agents/references/coded/quickstart.md +0 -2
  8. package/skills/uipath-agents/references/lowcode/capabilities/inline-in-flow/inline-in-flow.md +10 -8
  9. package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +1 -1
  10. package/skills/uipath-human-in-the-loop/SKILL.md +1 -3
  11. package/skills/uipath-human-in-the-loop/references/hitl-node-apptask.md +0 -2
  12. package/skills/uipath-human-in-the-loop/references/hitl-node-coded-action-app.md +0 -2
  13. package/skills/uipath-human-in-the-loop/references/hitl-node-quickform.md +2 -2
  14. package/skills/uipath-maestro-flow/.maintenance/README.md +265 -0
  15. package/skills/uipath-maestro-flow/.maintenance/check-all.sh +40 -0
  16. package/skills/uipath-maestro-flow/.maintenance/check-anchors.sh +101 -0
  17. package/skills/uipath-maestro-flow/.maintenance/check-depth.sh +132 -0
  18. package/skills/uipath-maestro-flow/.maintenance/check-link-text.sh +123 -0
  19. package/skills/uipath-maestro-flow/.maintenance/check-links.sh +73 -0
  20. package/skills/uipath-maestro-flow/.maintenance/check-orphans.sh +93 -0
  21. package/skills/uipath-maestro-flow/.maintenance/check-plugin-pairs.sh +39 -0
  22. package/skills/uipath-maestro-flow/.maintenance/check-template.sh +42 -0
  23. package/skills/uipath-maestro-flow/.maintenance/check-uip-commands.sh +270 -0
  24. package/skills/uipath-maestro-flow/.maintenance/check-versions.sh +160 -0
  25. package/skills/uipath-maestro-flow/SKILL.md +69 -886
  26. package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +207 -0
  27. package/skills/uipath-maestro-flow/references/author/brownfield.md +91 -0
  28. package/skills/uipath-maestro-flow/references/author/editing-operations-cli.md +190 -0
  29. package/skills/uipath-maestro-flow/references/author/editing-operations-json.md +374 -0
  30. package/skills/uipath-maestro-flow/references/author/editing-operations.md +104 -0
  31. package/skills/uipath-maestro-flow/references/author/greenfield.md +420 -0
  32. package/skills/uipath-maestro-flow/references/author/planning-arch.md +364 -0
  33. package/skills/uipath-maestro-flow/references/author/planning-impl.md +291 -0
  34. package/skills/uipath-maestro-flow/references/author/plugins/agent/impl.md +237 -0
  35. package/skills/uipath-maestro-flow/references/author/plugins/agent/planning.md +97 -0
  36. package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/impl.md +107 -0
  37. package/skills/uipath-maestro-flow/references/author/plugins/agentic-process/planning.md +61 -0
  38. package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/impl.md +108 -0
  39. package/skills/uipath-maestro-flow/references/author/plugins/api-workflow/planning.md +60 -0
  40. package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/impl.md +171 -0
  41. package/skills/uipath-maestro-flow/references/author/plugins/batch-transform/planning.md +72 -0
  42. package/skills/uipath-maestro-flow/references/author/plugins/connector/impl-inline.md +120 -0
  43. package/skills/uipath-maestro-flow/references/author/plugins/connector/impl.md +463 -0
  44. package/skills/uipath-maestro-flow/references/author/plugins/connector/planning.md +186 -0
  45. package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/impl.md +517 -0
  46. package/skills/uipath-maestro-flow/references/author/plugins/connector-trigger/planning.md +115 -0
  47. package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/impl.md +309 -0
  48. package/skills/uipath-maestro-flow/references/author/plugins/conversational-agent/planning.md +133 -0
  49. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/impl.md +428 -0
  50. package/skills/uipath-maestro-flow/references/author/plugins/data-fabric/planning.md +188 -0
  51. package/skills/uipath-maestro-flow/references/author/plugins/decision/impl.md +83 -0
  52. package/skills/uipath-maestro-flow/references/author/plugins/decision/planning.md +38 -0
  53. package/skills/uipath-maestro-flow/references/author/plugins/delay/impl.md +38 -0
  54. package/skills/uipath-maestro-flow/references/author/plugins/delay/planning.md +53 -0
  55. package/skills/uipath-maestro-flow/references/author/plugins/end/impl.md +56 -0
  56. package/skills/uipath-maestro-flow/references/author/plugins/end/planning.md +28 -0
  57. package/skills/uipath-maestro-flow/references/author/plugins/flow/impl.md +107 -0
  58. package/skills/uipath-maestro-flow/references/author/plugins/flow/planning.md +58 -0
  59. package/skills/uipath-maestro-flow/references/author/plugins/hitl/impl.md +181 -0
  60. package/skills/uipath-maestro-flow/references/author/plugins/hitl/planning.md +166 -0
  61. package/skills/uipath-maestro-flow/references/author/plugins/http/impl-connector.md +86 -0
  62. package/skills/uipath-maestro-flow/references/author/plugins/http/impl-manual.md +68 -0
  63. package/skills/uipath-maestro-flow/references/author/plugins/http/impl.md +173 -0
  64. package/skills/uipath-maestro-flow/references/author/plugins/http/planning.md +107 -0
  65. package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/impl.md +540 -0
  66. package/skills/uipath-maestro-flow/references/author/plugins/inline-agent/planning.md +115 -0
  67. package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/impl.md +269 -0
  68. package/skills/uipath-maestro-flow/references/author/plugins/inline-voice-agent/planning.md +128 -0
  69. package/skills/uipath-maestro-flow/references/author/plugins/ixp/impl.md +424 -0
  70. package/skills/uipath-maestro-flow/references/author/plugins/ixp/planning.md +95 -0
  71. package/skills/uipath-maestro-flow/references/author/plugins/loop/impl.md +403 -0
  72. package/skills/uipath-maestro-flow/references/author/plugins/loop/planning.md +60 -0
  73. package/skills/uipath-maestro-flow/references/author/plugins/merge/impl.md +43 -0
  74. package/skills/uipath-maestro-flow/references/author/plugins/merge/planning.md +24 -0
  75. package/skills/uipath-maestro-flow/references/author/plugins/queue/impl.md +82 -0
  76. package/skills/uipath-maestro-flow/references/author/plugins/queue/planning.md +44 -0
  77. package/skills/uipath-maestro-flow/references/author/plugins/rpa/impl.md +117 -0
  78. package/skills/uipath-maestro-flow/references/author/plugins/rpa/planning.md +61 -0
  79. package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/impl.md +56 -0
  80. package/skills/uipath-maestro-flow/references/author/plugins/scheduled-trigger/planning.md +93 -0
  81. package/skills/uipath-maestro-flow/references/author/plugins/script/impl.md +98 -0
  82. package/skills/uipath-maestro-flow/references/author/plugins/script/planning.md +42 -0
  83. package/skills/uipath-maestro-flow/references/author/plugins/subflow/impl.md +164 -0
  84. package/skills/uipath-maestro-flow/references/author/plugins/subflow/planning.md +35 -0
  85. package/skills/uipath-maestro-flow/references/author/plugins/summarize/impl.md +189 -0
  86. package/skills/uipath-maestro-flow/references/author/plugins/summarize/planning.md +66 -0
  87. package/skills/uipath-maestro-flow/references/author/plugins/switch/impl.md +72 -0
  88. package/skills/uipath-maestro-flow/references/author/plugins/switch/planning.md +34 -0
  89. package/skills/uipath-maestro-flow/references/author/plugins/terminate/impl.md +48 -0
  90. package/skills/uipath-maestro-flow/references/author/plugins/terminate/planning.md +29 -0
  91. package/skills/uipath-maestro-flow/references/author/plugins/transform/impl.md +252 -0
  92. package/skills/uipath-maestro-flow/references/author/plugins/transform/planning.md +47 -0
  93. package/skills/uipath-maestro-flow/references/diagnose/CAPABILITY.md +73 -0
  94. package/skills/uipath-maestro-flow/references/diagnose/failure-modes.md +353 -0
  95. package/skills/uipath-maestro-flow/references/diagnose/troubleshooting-guide.md +174 -0
  96. package/skills/uipath-maestro-flow/references/evaluate/CAPABILITY.md +134 -0
  97. package/skills/uipath-maestro-flow/references/evaluate/commands-reference.md +376 -0
  98. package/skills/uipath-maestro-flow/references/evaluate/eval-sets-guide.md +227 -0
  99. package/skills/uipath-maestro-flow/references/evaluate/evaluators-guide.md +143 -0
  100. package/skills/uipath-maestro-flow/references/evaluate/running-guide.md +215 -0
  101. package/skills/uipath-maestro-flow/references/evaluate/upload-safety.md +94 -0
  102. package/skills/uipath-maestro-flow/references/operate/CAPABILITY.md +77 -0
  103. package/skills/uipath-maestro-flow/references/operate/manage.md +39 -0
  104. package/skills/uipath-maestro-flow/references/operate/run.md +121 -0
  105. package/skills/uipath-maestro-flow/references/operate/ship.md +57 -0
  106. package/skills/uipath-maestro-flow/references/shared/action-nodes.md +100 -0
  107. package/skills/uipath-maestro-flow/references/shared/cli-commands.md +269 -0
  108. package/skills/uipath-maestro-flow/references/shared/cli-conventions.md +178 -0
  109. package/skills/uipath-maestro-flow/references/shared/file-format.md +582 -0
  110. package/skills/uipath-maestro-flow/references/shared/node-output-wiring.md +86 -0
  111. package/skills/uipath-maestro-flow/references/shared/ux-narration-and-todos.md +113 -0
  112. package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +787 -0
  113. package/skills/uipath-platform/references/integration-service/activities.md +2 -2
  114. package/skills/uipath-platform/references/integration-service/activity-generation.md +8 -1
  115. package/skills/uipath-platform/references/integration-service/triggers.md +1 -3
  116. package/version-manifest.json +1 -1
  117. package/skills/uipath-maestro-flow/examples/AquariumSafetyStop.flow.ts +0 -26
  118. package/skills/uipath-maestro-flow/examples/ArchiveCardExtract.flow.ts +0 -38
  119. package/skills/uipath-maestro-flow/examples/BakeOffEntryForm.flow.ts +0 -27
  120. package/skills/uipath-maestro-flow/examples/BeeHiveLedger.flow.ts +0 -61
  121. package/skills/uipath-maestro-flow/examples/BeltProgression.flow.ts +0 -53
  122. package/skills/uipath-maestro-flow/examples/BirdCountLookup.flow.ts +0 -24
  123. package/skills/uipath-maestro-flow/examples/ClubDirectory.flow.ts +0 -56
  124. package/skills/uipath-maestro-flow/examples/ConcertSoundcheck.flow.ts +0 -59
  125. package/skills/uipath-maestro-flow/examples/DoorbellLog.flow.ts +0 -45
  126. package/skills/uipath-maestro-flow/examples/FestivalMapScaffold.flow.ts +0 -22
  127. package/skills/uipath-maestro-flow/examples/FieldTripQuickForm.flow.ts +0 -45
  128. package/skills/uipath-maestro-flow/examples/FossilCatalogEnrich.flow.ts +0 -26
  129. package/skills/uipath-maestro-flow/examples/GallerySubmission.flow.ts +0 -67
  130. package/skills/uipath-maestro-flow/examples/GreenhouseWatering.flow.ts +0 -39
  131. package/skills/uipath-maestro-flow/examples/HarbourRadioLine.flow.ts +0 -31
  132. package/skills/uipath-maestro-flow/examples/HerbariumDispatch.flow.ts +0 -34
  133. package/skills/uipath-maestro-flow/examples/KilnReview.flow.ts +0 -38
  134. package/skills/uipath-maestro-flow/examples/LibraryDeskChat.flow.ts +0 -39
  135. package/skills/uipath-maestro-flow/examples/LighthouseSignal.flow.ts +0 -30
  136. package/skills/uipath-maestro-flow/examples/MeteorShowerPages.flow.ts +0 -39
  137. package/skills/uipath-maestro-flow/examples/NeighborhoodWalkPlanner.flow.ts +0 -27
  138. package/skills/uipath-maestro-flow/examples/ObservatorySeeing.flow.ts +0 -51
  139. package/skills/uipath-maestro-flow/examples/OralHistoryDigest.flow.ts +0 -31
  140. package/skills/uipath-maestro-flow/examples/PlanetariumConfirmation.flow.ts +0 -34
  141. package/skills/uipath-maestro-flow/examples/PlantNameAdvisor.flow.ts +0 -28
  142. package/skills/uipath-maestro-flow/examples/PostcardCaption.flow.ts +0 -44
  143. package/skills/uipath-maestro-flow/examples/PotteryStudioCallback.flow.ts +0 -41
  144. package/skills/uipath-maestro-flow/examples/RecipeScaler.flow.ts +0 -62
  145. package/skills/uipath-maestro-flow/examples/SeedPacketReader.flow.ts +0 -49
  146. package/skills/uipath-maestro-flow/examples/TideTableConverter.flow.ts +0 -35
  147. package/skills/uipath-maestro-flow/examples/TrailLogSummary.flow.ts +0 -75
  148. package/skills/uipath-maestro-flow/examples/WorkshopInventory.flow.ts +0 -27
  149. package/skills/uipath-maestro-flow/examples/bindings.json +0 -85
  150. package/skills/uipath-maestro-flow/references/CLI-LOOP.md +0 -309
  151. package/skills/uipath-maestro-flow/references/agent-resources.md +0 -74
  152. package/skills/uipath-maestro-flow/references/agent.md +0 -175
  153. package/skills/uipath-maestro-flow/references/agentic-process.md +0 -41
  154. package/skills/uipath-maestro-flow/references/api-workflow.md +0 -29
  155. package/skills/uipath-maestro-flow/references/author.md +0 -178
  156. package/skills/uipath-maestro-flow/references/batch-transform.md +0 -23
  157. package/skills/uipath-maestro-flow/references/bindings.md +0 -178
  158. package/skills/uipath-maestro-flow/references/branch.md +0 -18
  159. package/skills/uipath-maestro-flow/references/brownfield.md +0 -152
  160. package/skills/uipath-maestro-flow/references/connector-params.md +0 -624
  161. package/skills/uipath-maestro-flow/references/conversational.md +0 -77
  162. package/skills/uipath-maestro-flow/references/data-fabric.md +0 -268
  163. package/skills/uipath-maestro-flow/references/delay.md +0 -26
  164. package/skills/uipath-maestro-flow/references/diagnose.md +0 -141
  165. package/skills/uipath-maestro-flow/references/document-pipeline.md +0 -47
  166. package/skills/uipath-maestro-flow/references/error-handling.md +0 -75
  167. package/skills/uipath-maestro-flow/references/evaluate.md +0 -168
  168. package/skills/uipath-maestro-flow/references/event-trigger.md +0 -155
  169. package/skills/uipath-maestro-flow/references/form-trigger.md +0 -41
  170. package/skills/uipath-maestro-flow/references/hitl.md +0 -169
  171. package/skills/uipath-maestro-flow/references/http.md +0 -105
  172. package/skills/uipath-maestro-flow/references/inline-agent.md +0 -132
  173. package/skills/uipath-maestro-flow/references/ixp.md +0 -167
  174. package/skills/uipath-maestro-flow/references/loops.md +0 -77
  175. package/skills/uipath-maestro-flow/references/manual-trigger.md +0 -39
  176. package/skills/uipath-maestro-flow/references/operate.md +0 -204
  177. package/skills/uipath-maestro-flow/references/or-processes.md +0 -91
  178. package/skills/uipath-maestro-flow/references/parallel-merge.md +0 -21
  179. package/skills/uipath-maestro-flow/references/placeholder.md +0 -70
  180. package/skills/uipath-maestro-flow/references/published-function.md +0 -66
  181. package/skills/uipath-maestro-flow/references/queue.md +0 -53
  182. package/skills/uipath-maestro-flow/references/return.md +0 -20
  183. package/skills/uipath-maestro-flow/references/rpa-workflow.md +0 -27
  184. package/skills/uipath-maestro-flow/references/scheduled-trigger.md +0 -34
  185. package/skills/uipath-maestro-flow/references/script.md +0 -52
  186. package/skills/uipath-maestro-flow/references/subflow.md +0 -33
  187. package/skills/uipath-maestro-flow/references/summarize.md +0 -20
  188. package/skills/uipath-maestro-flow/references/switch.md +0 -20
  189. package/skills/uipath-maestro-flow/references/terminate.md +0 -22
  190. package/skills/uipath-maestro-flow/references/transform.md +0 -32
  191. package/skills/uipath-maestro-flow/references/voice.md +0 -70
@@ -0,0 +1,86 @@
1
+ # Wiring Node Outputs to Downstream Inputs
2
+
3
+ Use this reference whenever a `.flow` JSON field references a previous node output, workflow variable, or `$metadata.*` / `$self.*`. It is the source of truth for `=js:` expressions; node-type plugins defer to it.
4
+
5
+ ## Core rule
6
+
7
+ In value-typed fields, every `$vars.*`, `$metadata.*`, or `$self.*` reference must start with `=js:`. Otherwise, runtime treats the rewritten value as a literal. A missing prefix is silent: the serializer rewrites `$vars`→`vars` with or without `=js:`, so `flow validate` passes and the file looks plausible, but at runtime the BPMN engine sees a plain string and never evaluates it.
8
+
9
+ Use `$vars.<sourceNodeId>.output.<field>`—never `nodes.X.output.Y`. `<sourceNodeId>` is the producing node's `id`; `output` is the standard output port (`error` is the error port); `<field>` is the output path.
10
+
11
+ ```text
12
+ =js:$vars.fetchUser1.output
13
+ =js:$vars.createRecord1.output.Id
14
+ =js:$vars.queryRecords1.output[0].Id
15
+ =js:$vars.fetchUser1.output.id === $vars.input.userId
16
+ =js:$metadata.instanceId
17
+ =js:`Hello ${$vars.userName}`
18
+ ```
19
+
20
+ Static values do not need `=js:`. For mixed strings, use `=js:` with JavaScript template literals and `${}`.
21
+
22
+ ## Where `=js:` applies
23
+
24
+ | Context | Field | Rule |
25
+ |---|---|---|
26
+ | Connector activity nodes (`uipath.connector.<connector-key>.<activity>`) | `inputs.detail.bodyParameters.*`, `queryParameters.*`, `pathParameters.*` | **YES** |
27
+ | Managed HTTP (`core.action.http.v2`) | `inputs.detail.bodyParameters.url`, `headers`, `query`, `body` | **YES**; dynamic fields are stored here in `.flow` JSON in both manual and connector mode, regardless of how the CLI `--detail` flag accepts them at the top level |
28
+ | Custom HTTP (`core.action.http`) | `inputs.url`, `headers`, `body`, `queryParams` | **YES**; deprecated, prefer `core.action.http.v2` |
29
+ | HTTP branches | `inputs.branches[].conditionExpression` | **NO**; already JS |
30
+ | Decision (`core.logic.decision`) | `inputs.expression` | **NO**; already JS |
31
+ | Switch (`core.logic.switch`) | `inputs.cases[].expression` | **NO**; already JS |
32
+ | End nodes (`core.control.end`) | `outputs.<varId>.source` | **YES** |
33
+ | Variable updates | `variables.variableUpdates.<nodeId>[].expression` | **NO**; use `{ "type": "jsExpression", "expression": "<bare JS>", "fieldType": "<target variable type>" }`. A `=js:` string fails `flow validate` at the 1.9→1.10 migration. See [variables-and-expressions.md § Variable Updates](variables-and-expressions.md#variable-updates-variableupdates). |
34
+ | Loop nodes (`core.logic.loop`) | `inputs.collection` | **YES** |
35
+ | Subflow nodes (`core.subflow`) | `inputs.<inputId>.source` | **YES** |
36
+ | Script nodes (`core.action.script`) | `inputs.script` body | **NO**; the body is already JS and reads `$vars.*` directly |
37
+ | **Chat `conversationId`** (`uipath.conversational.*` nodes) | `inputs.conversationId` — a structured binding object to the trigger's only output, `$vars.<conversationTriggerId>.output.conversationId`. send-message also needs `exchangeId`, which is `conversationContext.latestExchangeId` on the wait node — there is no `output.exchangeId`. | **NO** — the expression sits unprefixed inside the object's `expression` field. See [conversational-agent/impl.md § Node JSON](../author/plugins/conversational-agent/impl.md#node-json). |
38
+ | **Chat `conversationalAgentSettings`** (`uipath.agent.conversational`, `uipath.core.agent.*` when conversational) | `inputs.conversationalAgentSettings` — five structured binding objects: `context` plus the `conversationId`, `exchangeId`, `messages` and `userSettings` derived from it. All five must be written when authoring from the CLI. | **NO** — the expression sits unprefixed inside each object's `expression` field. See [conversational-agent/impl.md § The `conversationalAgentSettings` Wiring Rule](../author/plugins/conversational-agent/impl.md#the-conversationalagentsettings-wiring-rule). |
39
+ | **Voice `callContext`** (`uipath.agent.voice`, `uipath.conversational.voice.end-call`) | `inputs.callContext` — a structured binding object `{ "type": "jsExpression", "expression": "$vars.<originNodeId>.output.callContext", "fieldType": ... }`, never a bare string. `fieldType` is `"object"` on the voice agent and `"string"` on the end-call node. | **NO** — the expression sits unprefixed inside the object's `expression` field. See [author/plugins/inline-voice-agent/impl.md § The `callContext` wiring rule](../author/plugins/inline-voice-agent/impl.md#the-callcontext-wiring-rule). |
40
+ | **Inline-agent prompt** (`uipath.agent.autonomous` / `uipath.agent.voice` `agent.json` `messages[].content`) | Tokens use the flattened delivery key, never the flow expression: `{{input.<flowNodeId>__output__<field>}}`. The key is delivered by the node's `inputs.agentInputVariables[]` binding (`=$vars.<flowNodeId>.output.<field>`) and declared in `inputSchema.properties`. Mirror in `contentTokens[]` as `{ "type": "variable", "rawString": "input.<flowNodeId>__output__<field>" }` — `rawString` is brace-free with no added spaces, and `uip agent refresh` regenerates it, so never hand-author it. **Never a raw `{{ $vars.… }}`** (nothing rewrites agent.json prompt text — the model receives it literally) and never a bare `{{name}}`. | **NO** — `{{ ... }}` tokens, not `=js:`. See [author/plugins/inline-agent/impl.md § Wiring Flow Variables into Agent Prompts](../author/plugins/inline-agent/impl.md#wiring-flow-variables-into-agent-prompts). Encoding note: a read `agent.json` may use the flat `__` input keys or a newer nested (dotted-key) form — author flat, read both (see the impl.md encoding note). |
41
+
42
+ Do not add `=js:` to Decision, Switch, or HTTP branch conditions, script bodies, variable-update expressions, or inline-agent tokens; these formats are parsed separately.
43
+
44
+ ## Connector and HTTP wiring
45
+
46
+ ```jsonc
47
+ "inputs": {
48
+ "detail": {
49
+ "method": "POST",
50
+ "endpoint": "/v2/{entityName}/UpdateEntityRecord",
51
+ "pathParameters": { "entityName": "Entity" },
52
+ "queryParameters": {
53
+ "recordId": "=js:$vars.createRecord1.output.Id",
54
+ "expansionLevel": "3"
55
+ },
56
+ "bodyParameters": {
57
+ "Name": "static-value",
58
+ "AccountId": "=js:$vars.queryAccounts1.output[0].Id",
59
+ "Notes": "=js:`Created from flow run ${$metadata.instanceId}`"
60
+ }
61
+ }
62
+ }
63
+ ```
64
+
65
+ Plugin-specific path fields are not value fields; follow the plugin reference. In particular, Transform `inputs.collection` must be a path such as `"$vars.orders.output.items"`, without `=js:`.
66
+
67
+ ## Never do this
68
+
69
+ 1. **Never invent `nodes.X.output.Y`;** use `$vars` references.
70
+ 2. **Never write `$vars.X.output.Y` without `=js:`** in an expression value field. The `$vars→vars` rewrite still occurs, producing a literal. Use the plugin-specific format for path fields such as Transform `inputs.collection`.
71
+ 3. **Never wrap Decision, Switch, or HTTP branch conditions in `=js:`.** They already parse JS.
72
+ 4. **Never use `{ }` template interpolation in connector or HTTP activity inputs.** The flow-layer template runner skips these fields; the `$` is stripped and `{vars.X}` ships literally to the IS runtime. Use `=js:` with JS template literals instead.
73
+ 5. **Never quote `=js:` itself in an expression.** `"=js:$vars.X"` is correct; `"\"=js:$vars.X\""` is a string containing the prefix.
74
+
75
+ ## Runtime and migration behavior
76
+
77
+ `expression-transform.ts` rewrites `$vars` → `vars` in every node-data string, whether or not `=js:` is present. The prefix tells the BPMN engine to evaluate the result; without it, the rewritten value remains literal. `bpmn-moddle.ts` has an `ensureJsPrefix` fallback only for variable updates. Connector and HTTP activity inputs have no equivalent fallback, so write `=js:` explicitly.
78
+
79
+ ## Validation
80
+
81
+ When a flow outputs literal `vars.X.output.Y`, `nodes.X.output.Y`, or another unevaluated expression:
82
+
83
+ 1. Open the `.flow` file.
84
+ 2. Search for the token: `grep '"vars\.' <project>.flow` or `grep '"\$vars\.' <project>.flow`.
85
+ 3. In `bodyParameters`, `queryParameters`, `pathParameters`, end-node `source`, and other value fields, prepend `=js:` to each variable reference.
86
+ 4. Run `uip maestro flow validate` and re-debug.
@@ -0,0 +1,113 @@
1
+ # UX — Narration and Todos
2
+
3
+ Two **opt-in** rules govern communication during work. They are **off by default**. Engage them when the user requests narration/progress tracking or signals a verbosity preference. Once engaged, they apply across every capability (Author, Operate, Diagnose, Evaluate), journey, and action type (`uip` CLI, shell builtins, Read/Write/Edit, Glob/Grep).
4
+
5
+ > Inherits from [SKILL.md](../../SKILL.md). These rules are canonical; capability indexes and journey docs reference this file.
6
+
7
+ ## When to engage
8
+
9
+ Engage narration and todos if any condition holds:
10
+
11
+ - The user explicitly asks to narrate, show steps, keep a todo list, track progress, explain as work proceeds, be verbose, or be detailed.
12
+ - The user has a standing verbosity preference in-session or in recalled memory.
13
+ - The user asks a question requiring running commentary, such as what is happening or where work stands.
14
+
15
+ Otherwise use **silent mode**: work quietly and surface only decisions, failures, consent gates (`flow debug`), and the final result. Do not provide per-step narration or a user-facing todo list. Private todos remain optional for large journeys.
16
+
17
+ ## The two rules
18
+
19
+ Once engaged:
20
+
21
+ 1. **Narrate every logical step in plain English.** Give one short line before each step explaining what is being done and why in user terms; do not require knowledge of `bash`, `uip` flags, or `.flow` JSON.
22
+ 2. **Maintain a granular progress list** for every journey above the trivial threshold: one todo per logical step, kept current. Standard journeys usually have 10+ items; complex flows have more. Do not target a count; derive it from the actual steps.
23
+
24
+ ### Logical steps
25
+
26
+ A logical step is the smallest user-meaningful outcome, usually 1–5 actions grouped by intent across tools. Examples include discovering and adding a node, confirming project layout, updating a script body, validating a flow, or triaging a fault. Bash plumbing inside a step is covered by its narration.
27
+
28
+ ## Narration cadence
29
+
30
+ | Situation | Rule |
31
+ |---|---|
32
+ | Start of logical step | Narrate one short line in plain English. |
33
+ | Multiple actions within a step | Do not add narration. |
34
+ | Step transition | Narrate the next step. |
35
+ | Decision point | Give a brief line before asking the user; explain the decision's consequence. |
36
+ | Failure/retry | Always narrate what failed and what will be tried next, even in silent mode. |
37
+ | Trivial probe (`uip --version`, repeated `login status` in the same minute) | Skip. |
38
+ | Non-`uip` shell plumbing (`ls`, `cat`, `mkdir`, `cd`) | Skip; the step line covers it. |
39
+ | File reads/edits inside a step | Skip; the step line covers them. |
40
+
41
+ ## Narration lines
42
+
43
+ Keep each line to approximately 15 words or fewer, as one sentence or fragment. Use system voice, not first person. Use user terms rather than commands, flags, or JSON internals. State the actual subject when scope is ambiguous, convey new information, and avoid ceremony, recaps, and repetition.
44
+
45
+ Use or adapt these patterns:
46
+
47
+ | Step | Narration |
48
+ |---|---|
49
+ | Login probe | "Checking whether you're logged in to the UiPath tenant…" |
50
+ | Solution scaffold | "Scaffolding a new solution at `<path>` so the Flow project has a parent." |
51
+ | Flow init | "Initializing the Flow project. This creates the `.flow` file you'll edit." |
52
+ | Verify project layout | "Confirming the solution/project layout is correct before continuing." |
53
+ | Registry discovery | "Looking up `<node-type>` in the registry so I can wire its inputs correctly…" |
54
+ | Node add | "Adding the `<node-type>` node and copying its registry definition into the file…" |
55
+ | Edit flow JSON | "Editing the flow JSON to add the `<thing>`." |
56
+ | Edge wiring | "Wiring `<from>` → `<to>` so data flows in the right order." |
57
+ | Variable mapping | "Mapping output variables on the End node — every reachable End needs them." |
58
+ | Script body update | "Updating the script body in the `<nodeId>` node." |
59
+ | Resource refresh | "Syncing connection and resource declarations into the solution before upload…" |
60
+ | Validate | "Running validate. This catches missing edges, bad expressions, and wiring mistakes." |
61
+ | Format | "Formatting the layout. Studio Web renders nodes correctly only after format normalizes their sizes." |
62
+ | Studio Web upload | "Pushing to Studio Web. This is the safe path — no execution, just the visual editor." |
63
+ | Pack for Orchestrator | "Packing the solution for Orchestrator deploy…" |
64
+ | Orchestrator publish | "Publishing the package to Orchestrator…" |
65
+ | Debug consent | "Running debug end-to-end. Real systems will be hit (emails sent, Slack posts, API calls)." |
66
+ | Process run | "Triggering the deployed process now…" |
67
+ | Job status | "Checking the job's current status…" |
68
+ | Job traces | "Pulling traces — verbose execution timeline." |
69
+ | Instance pause | "Pausing the running instance…" |
70
+ | Instance resume | "Resuming the instance from where it paused…" |
71
+ | Instance cancel | "Cancelling the instance…" |
72
+ | Instance retry | "Retrying the faulted instance from the last successful checkpoint…" |
73
+ | Incident fetch | "Fetching the incident record — this is the structured error report from the failed run." |
74
+ | Variable inspection | "Reading the runtime variable state at the moment of failure…" |
75
+ | Flow correlation | "Mapping the faulting element ID back to a node in your `.flow` file…" |
76
+ | Traces, last resort | "Pulling traces. Last resort — the previous steps weren't enough." |
77
+
78
+ ## Progress-list threshold
79
+
80
+ This applies only when narration/todos are engaged. In silent mode, journey size never creates a user-facing list.
81
+
82
+ | Journey | Narration | Progress list |
83
+ |---|---|---|
84
+ | Single edit: 1–2 actions, no decisions | One line | None |
85
+ | Small edit: 3–5 actions or one decision | One line per step | Optional |
86
+ | Standard: greenfield, multi-node brownfield, ship, or full diagnose | One line per step | Required and granular |
87
+ | Complex: 10+ nodes, multiple resource bindings, or planning phase | Denser cadence | Required, granular, with sub-todos |
88
+
89
+ ## Todo rules
90
+
91
+ A todo represents a state-changing outcome the user cares about; roughly one logical step. Multiple tool actions may form one todo.
92
+
93
+ Valid todos include: solution scaffolded; Flow project created; node added and wired; edges connected; variables defined and mapped; validate green; format applied; resources refreshed; uploaded to Studio Web; incident fetched and read; root cause classified.
94
+
95
+ Do not create todos for registry lookup, `ls`/`cat`/`Glob` path checks, pre-edit reads, parsing JSON, or rerunning the same `validate` after a one-character fix. Keep such plumbing invisible.
96
+
97
+ ## Pivots
98
+
99
+ When scope changes:
100
+
101
+ 1. Narrate the pivot, for example: "Switching from connector to HTTP node. Updating todos."
102
+ 2. Mark obsolete in-flight todos cancelled and remove them; insert todos for the new direction in the correct position; retain completed todos as history.
103
+ 3. Continue with the new in-progress todo.
104
+
105
+ ## Anti-patterns
106
+
107
+ - Never narrate every command, Read, Edit, or shell action; narrate logical outcomes.
108
+ - Never recap flags or JSON structure.
109
+ - Never show narration or a user-facing todo list without an engagement trigger.
110
+ - When engaged, never omit narration at a step transition or the required list for a standard journey.
111
+ - Never create a todo per bash call.
112
+ - Never use first-person filler such as "Let me", "I'll go ahead", or "I'm going to".
113
+ - Never repeat the previous narration; move to the next logical step.