Repository navigation
docs(uipath-maestro-flow): decompile carries an unbundled version's definition with .definitions([...]) - #3955
Conversation
…efinition with .definitions([...])
builder-sdk#1167 lets compile resolve a pinned { version } the SDK does not
bundle against the definition the .flow file carries. Decompile copies that
definition into a const passed to flow(...).definitions([...]) and keeps the
pin, so an edited node keeps the file's version. The omit-and-warn path
documented in #3900 now applies only when the file holds no definition for
the pair.
🤖 Generated with Claude Code
Co-Authored-By: [Claude](mailto:noreply@anthropic.com)
|
Claude finished @tmatup's task in 1m 54s —— View job PR Review: docs(uipath-maestro-flow) — carried definitions
SummaryThis PR updates Change-by-Change Review1.
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | Not changed; existing frontmatter unaffected |
| E2E Tests | OK | Reference-only change; existing brownfield tasks still valid |
| Skill Body | OK | SKILL.md unchanged |
| References & Assets | OK | Clean restructure, accurate content, no broken links |
| Repo Hygiene | OK | Single-file change, no secrets, no cross-skill deps |
Issues for Manual Review
- SDK dependency gate: The PR description states "Do not merge before UiPath/builder-sdk#1167 merges." Reviewers should verify that dependency is merged before this lands, since the documented
.definitions([...])method won't exist in the SDK without it. - Accuracy of the code example: The
const quickFormV1_6Definition = { nodeType: "...", version: "1.6", ... }shape and the.definitions([quickFormV1_6Definition])API should be verified against the actual builder-sdk#1167 implementation by someone with access to that branch.
Conclusion
Clean, well-scoped documentation change. No issues found. The restructuring improves clarity by separating the two cases (definition present vs. absent) and the new content is prescriptive, actionable, and consistent with repo conventions. Approve once the upstream SDK dependency (builder-sdk#1167) is confirmed merged.
rockymadden
left a comment
There was a problem hiding this comment.
Recommendation: 🟢 Approved. Text matches builder-sdk#1167 source; only minors remain.
What
- Narrows the omit-and-warn bullet in
references/brownfield.mdto files with no carried definition, and names merge'smovedwarning. - Adds the normal case: decompile hoists the carried definition into a
const, passes it to.definitions([...]), keeps the pin, and an edited node stays at the file's version. - Documents builder-sdk#1167, on top of #3900.
Overall findings
- minor · Merge gate is prose only. builder-sdk#1167 is still open, and
.definitions([...])plus thenode "<id>" moved ...merge warning exist only on its branch (mainhas neither). Merged early, the skill tells agents the carried case is silent while the shipped SDK still omits the pin and warns. Fix: mark this PR draft until #1167 merges and ships in the SDK the skill installs.
Checked
- ✅
decompile.tscarriedPairs+.definitions([...])emission, const namingquickFormV1_6Definition. - ✅
merge.tswarning textnode "<id>" moved <type>@<old> -> <new>. - ✅ Refusal text names
.definitions([...]);NODE_VERSION_UNREGISTEREDskipped for carried pins. - ✅ Matches
website/reference/brownfield.mdon the SDK branch. - ✅ No flavor drift:
skill-flavors/studioweb/uipath-maestro-flow/.canonicalpinsclassic, and there is nobrownfield.mdoverride.
tl;dr
Accurate against the SDK branch. Hold the merge until builder-sdk#1167 lands. One minor on what to do when validate fails.
…s differ Replace the closing "validate the merged file as usual" with the action: decompile warns when the carried definition's inputs differ from the factory's version, and the fix is to edit that node's inputs in the merged .flow. rawNode is not a substitute yet: a raw node cannot route a human task's outcome exits in the released SDK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TLSHyUCcjom37GWkboYUVF
Do not merge before UiPath/builder-sdk#1167 merges. This doc describes that PR's behaviour.
Summary
Short version: UiPath/builder-sdk#1167 lets
compileresolve a pinned{ version }that the SDK does not bundle, using the definition the.flowfile itself carries. Decompile copies that definition into aconst, passes it to the newflow(...).definitions([...])builder method, and keeps the pin. A product-written node such asquick-form@1.6now compiles unedited and keeps its version even when the author edits it. This PR documents that inreferences/brownfield.md, on top of #3900 (which documented the interim omit-and-warn behaviour from builder-sdk#1159).Example:
uip maestro flow node addwritesuipath.human-in-the-loop.quick-form@1.6, and the SDK bundles1.0and1.1.What changed
skills/uipath-maestro-flow/references/brownfield.md, decompile warnings list, the unbundled-pin bullet:node "<id>" moved <type>@<old> -> <new>) an edited node produces there.const+.definitions([...])shape, and the pin kept through edits.constand the.definitions([...])call alone (without themcompilerefuses the pin), and tovalidatethe merged file, because an edited node's inputs still come from the SDK's own factory.website/reference/brownfield.mdon the SDK branch.SKILL.md, so the SKILL.md section byte budgets do not change.Tests
pytest tests/tasks/uipath-maestro-flow/_shared: 1416 passed (includes the SKILL.md size-budget test).node scripts/check-skill-links.mjs: all links resolve.python3 scripts/check-skill-verbs.py skills/uipath-maestro-flow: 0 blocking findings.🤖 Generated with Claude Code
Co-Authored-By: Claude