Skip to content

Triage the 25 rules the preview author-capability port dropped (#3172, before the port audit existed) #3503

Description

@dmetzgar

Follow-up from #3474, which restored one of these (the IxP listing path) after it cost a listing question 166s against GA's 52s — 80 registry get calls where GA made zero.

#3474 also fixed scripts/audit-capability-port.mjs, whose rule matcher was case-sensitive and so missed 66 of 275 bolded rules (24%) across the Maestro references — the house style writes **Do NOT …** 64 times against 90 for **Do not …**. With that fixed, the audit re-scores every port, and the damage is concentrated in one place:

Capability Ported in Rules dropped
operate / diagnose / evaluate #3386 / #3421 / #3423 — with the tool 1 / 0 / 0
author plugins #3172 — before the tool existed 25 across 9 references

The author port predates the audit script. That is the whole explanation, and it means these 25 were never seen-and-decided the way #3421's port decisions were.

The list

Reproduce any row with:

node scripts/audit-capability-port.mjs \
  skills/uipath-maestro-flow/references/author/plugins/<name> \
  preview/skills/uipath-maestro-flow/references/<file>.md
preview file dropped rule
script.md Never name a variable aggregate
batch-transform.md Do not pass reasoning-heavy instructions that depend on the whole document
event-trigger.md Do not pass filterExpression directly — the validator rejects it
conversational.md Do not add guardrails to inputSchema.properties
conversational.md Do not carry one flavor's agent port across
conversational.md Do not expect flow debug to run the conversation
conversational.md Do not invent output paths
conversational.md Do not leave the manual trigger in place
conversational.md Do not use =js: strings
data-fabric.md Do not add an instance outputs block
data-fabric.md Do not feed an Update node's output into a Loop collection or a Transform
data-fabric.md Do not hand-write definitions[]
data-fabric.md Do not put a model block on the instance
data-fabric.md Do not strip _entityFields / _outputSchema / _choiceSets from an existing node
data-fabric.md Do not treat a search hit as proof you can author the node
data-fabric.md Do not use these nodes inside an API workflow runtime
data-fabric.md do not hand-author a definitions[] entry to stand in for the missing one
hitl.md Do not use the alias in scripts; use $vars.{nodeId}.output.{fieldId}
http.md Do not hand-write inputs.detail
http.md Do not use =js: on conditionExpression
inline-agent.md Do not clear this error by writing prompts onto the node
inline-agent.md Do not skip uip agent refresh --inline-in-flow followed by uip agent validate --inline-in-flow
inline-agent.md Do not use Flow CLI node add, edge add, or variable commands for inline-agent graph edits
voice.md Do not hand-write definitions[] entries
voice.md Do not leave the scaffolded core.trigger.manual in an inbound flow

How to triage

Not all 25 are losses. Several are unreachable through the builder SDK and were correctly dropped — Do not hand-write definitions[], Do not add an instance outputs block, Do not put a model block on the instance, Do not use Flow CLI node add all describe JSON/CLI authoring the SDK replaces.

Others look SDK-independent and therefore like real losses:

  • Never name a variable aggregate — a JS runtime collision in script nodes, nothing to do with how the graph was authored
  • Do not leave the scaffolded core.trigger.manual in an inbound flow, Do not leave the manual trigger in place
  • Do not skip uip agent refresh --inline-in-flow + validate — a CLI workflow step, not a JSON concern
  • Do not pass reasoning-heavy instructions that depend on the whole document — a prompting rule
  • Do not use these nodes inside an API workflow runtime — a runtime constraint

The precedent from #3421 is to settle reachability by compiling probe flows, not by reading. That PR assumed four defects were unreachable through the builder, found three were, and found the fourth still live — a missing =js: prefix compiles to a bare literal, check reports nothing, and the node gets the text at run time. Had that gone unexamined the port would have deleted a working diagnosis. Same discipline applies here.

Note on data-fabric.md

Hold this file until the Data Fabric rewrite lands. @uipath/maestro-builder-sdk@6.7.0 (2026-09-23) added dataFabricCreate(), dataFabricDelete() and a query-many dataFabricRead() — see UiPath/flow-builder-sdk#766 and its PR #770 — so the file's connector routing and its "only 2 of the 7 operations" rationale both need rewriting anyway. Triage its 8 rows as part of that, not separately.

Definition of done

Each of the 25 is either restored to the preview reference or recorded as a deliberate omission with the evidence that it is unreachable. A clean under-covered 0 across all nine files, or a short note in this issue for each row consciously left out.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    skill-contentWrong or missing skill instructionssource:code-auditFiled from source inspection or code-aware audit.uipath-maestro-flowUiPath skill area: uipath-maestro-flow

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions