Skip to content

[Feature Request] Companion tool for semantic XAML workflow manipulation (WF-aware, not text-patching) #76

@cprima

Description

@cprima

LLM coding agents currently depend on two primitive mechanisms to modify XAML files:

  • Line-based inserts with a synthetic diff
  • Finding a matching string position and inserting there

Common coding agent tooling (Node.js, Python) has no robust Windows Workflow Foundation port. This means agents working on UiPath XAML files are limited to fragile text operations with no structural awareness of the activity tree.

To make coding agents robust when building or editing UiPath workflows, a .NET tool is needed that natively works with WF and exposes a surface for an LLM to make surgical changes to the activity tree — receiving back a valid .xaml file.

What we're asking for

A standalone tool that can perform WF-aware operations on XAML files — loading them through the WF/XAML object model rather than treating them as text.

Minimum useful operations, with inserts being the primary challenge (edits and deletes are far less common in code-generation workflows):

  • insert-activity — insert a generated activity snippet after a named anchor (e.g. by DisplayName)
  • add-argument — add a typed InArgument/OutArgument to a workflow's x:Members
  • add-variable — add a typed Variable<T> to a named Sequence
  • add-namespace-import — add an entry to TextExpression.NamespacesForImplementation
  • validate-and-save — load, validate via WF stack, save with correct namespace preservation

Why text patching is insufficient

UiPath XAML has several structural constraints that text-patching cannot enforce:

  • TextExpression.NamespacesForImplementation allows exactly one child <sco:Collection> — inserting outside it causes a XamlException at load time
  • mc:Ignorable lists prefix names literally — XML serialisers that rename prefixes (sapns3) invalidate it silently
  • sap2010:WorkflowViewState.IdRef values must be unique per file — collision causes incorrect designer state
  • Assembly reference containers differ between file types (scg:List vs sco:Collection)

Scope

This is not a request for a full workflow designer or code generator. The minimum useful scope is: given a valid XAML file and a structured operation description (JSON), produce a valid modified XAML file and confirm it reloads correctly. CoreWF (maintained by UiPath) provides the WF runtime for .NET 6+ and would be the natural foundation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions