docs(uipath-maestro-flow): add IxP extraction plugin#515
Conversation
49e1957 to
9008c70
Compare
|
|
||
| The `definitions[]` entry is copied verbatim from `registry get` (`Data.Node`). Critical Rule #7 applies unchanged. | ||
|
|
||
| ### Self-check before `uip maestro flow validate` |
There was a problem hiding this comment.
should this be part of uip maestro flow validate as a per-node-type hook?
There was a problem hiding this comment.
Ideally, yes we should have that Bai.
There was a problem hiding this comment.
Thanks - Submitted PR here: https://github.com/UiPath/cli/pull/1866
| > | ||
| > The Authoring rules above are the source of truth for the instance contract. The registry's `inputDefinition.properties` is **not** a license to override them: it is the schema of the property catalog (current keys only — `digitizationMode`, `documentTaxonomy`, `attachmentId`, `fileName`, `mimeType` are NOT returned by `registry get`). If a forbidden field appears in your `inputs`, you put it there from training-data recall, not from the registry response. | ||
|
|
||
| ```bash |
There was a problem hiding this comment.
this validation logic shouldn't be part of the skill - the agent just needs to run the validation script not produce it. Or better move it into the flow validate command.
There was a problem hiding this comment.
Will replace with https://github.com/UiPath/cli/pull/1866
| echo "no .flow file under ../.." >&2 | ||
| exit 1 | ||
| fi | ||
| python3 - "$f" <<'PY' |
There was a problem hiding this comment.
is this duplicating the self check script again?
There was a problem hiding this comment.
Will replace with https://github.com/UiPath/cli/pull/1866
| @@ -0,0 +1,114 @@ | |||
| task_id: skill-flow-ixp-activation | |||
There was a problem hiding this comment.
the current file structure is misleading because they're all under single_node but are not actually. Let's put them all under uipath-maestro-flow/ixp.
|
|
||
| dataset: | ||
| rows: | ||
| - id: aviation |
There was a problem hiding this comment.
This PR currently adds a very large number of test cases (26 in total) which will substantially increase the cost and time of the daily run (currently there are 54 test cases in the whole flow project). Let's avoid multiple similar tests as much as possible.
| --- | ||
| name: uipath-maestro-flow | ||
| description: "UiPath Maestro Flow (.flow) — read, edit, author, debug. `uip` CLI: nodes, edges, subflows, scripts, variables, triggers, End nodes, registry. For C#/XAML→uipath-rpa. For agents→uipath-agents." | ||
| description: "UiPath Maestro Flow (.flow) — read, edit, author, debug. `uip` CLI: nodes, edges, subflows, scripts, variables, triggers, End nodes, registry, IxP document extraction (PDFs, invoices, receipts, forms). For C#/XAML→uipath-rpa. For agents→uipath-agents." |
There was a problem hiding this comment.
Rebase should show a conflict. I could see adding a keyword to it, but we should be mindful of our character limits and what keywords we want this skill to trigger for -- which are more likely centered around flow keywords. Open to adding a few if we can spare the chars :)
There was a problem hiding this comment.
thanks - rebased and shortened insertion; finding activation is flakey without it
| Smoke: minimal scaffold — manual trigger → IxP extract → script (logs "ok") | ||
| → validate. Tests that the agent picks the IxP plugin, authors a single | ||
| extraction node via Direct JSON, and produces a flow that passes | ||
| `uip maestro flow validate`. |
|
|
||
| Validate-only: no `uip maestro flow debug`. | ||
|
|
||
| tags: [uipath-maestro-flow, smoke, lifecycle:generate, shape:multi-node, node:ixp] |
- Move IxP test suite from single_node/ixp/ to ixp/ (matches uipath-data-fabric layout; the suite contains multi-node and e2e flows that don't belong under single_node). - Replace impl.md self-check heredoc with a single invocation of the canonical self-check.py (the heredoc duplicated the script logic). - Trim activation/listing/negative test rows (6/3/3 to 2/1/1) to reduce daily-run cost. - Add task_timeout: 600 to smoke_01 and smoke_02. - Trim SKILL.md description: drop "document" and "receipts" to free flow-keyword tokens. - Update CODEOWNERS path to match the new test dir.
- Drop 8 of 10 dataset rows (kept aviation, birth-certificate); shrink the case statement to match. - Replace the inline self-check Python with a call to the canonical self-check.py shipped alongside impl.md.
Delete `self-check.py` and the "Self-check before uip maestro flow validate" section in `impl.md`. The rules now run inside `uip maestro flow validate` via the new `ixpNodeValidator` (UiPath/cli#1866). Drops the corresponding `run_command` stanza from `e2e_02_project_selection.yaml`.
UiPath/cli#1866's `ixpNodeValidator` emits self-contained error messages with `path` like `nodes[<nodeId>].inputs.model` (not "Rule #1 ..."), so the impl.md callout was misdescribing what an agent will see when `flow validate` fails on an IxP node.
9008c70 to
596af4d
Compare
|
Claude finished @joe-prosser's task in 4m 31s —— View job Coder-eval task lint (advisory)8 task YAMLs changed; verdicts: 0 Critical, 0 High, 0 Medium, 2 Low, 6 OK. One theme at Medium (validate-only e2e/integration). This check is advisory and never blocks merge. Rubric: .claude/commands/lint-task.md. Evidence of passing run❌ High — PR body does not claim the changed tasks have been run and passed. Please consider editing the PR description to add a line like:
Per-task lint
|
|
Addressed review comments:
|
Summary
New plugin under
references/plugins/ixp/for IxP document-extraction nodes (PDFs, invoices, receipts, contracts, forms). Addsplanning.md,impl.md, aself-check.py, parent-skill registration, CODEOWNERS, and 7 test scenarios.What changed
planning.md,impl.md(sanitization, discovery, listing, build procedure, 6 numbered authoring rules, self-check, output-access path, mock fallback, debug table),self-check.py(canonical) + logically-equivalent heredoc inimpl.md.SKILL.mddescription, When-to-Use bullet, Reference Navigation + Plugin Index rows, Critical Rule 14 link.planning-arch.mdresource-node table + ports + decision branch.planning-impl.md"context-dispatched, no bindings" subsection.tests/tasks/uipath-maestro-flow/single_node/ixp/): activation (6 rows), activation_listing (3 rows, asserts no.flowwritten), activation_negative (3 rows, asserts nouipath.ixp.*node lands), smoke_01/smoke_02, integration_handle_routing (canonicalFields.findpath), e2e_01 (SharePoint→IxP→HTTP), e2e_02 (10-row per-domain project selection).