docs: update eval commands from uip or eval to uip eval - #3092
docs: update eval commands from uip or eval to uip eval#3092AAgnihotry wants to merge 4 commits into
uip or eval to uip eval#3092Conversation
Eval commands moved from orchestrator-tool to a standalone eval-tool package in UiPath/cli#4025. Commands are now `uip eval ...` instead of `uip or eval ...`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Claude finished @AAgnihotry's task in 1m 59s —— View job PR Review:
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | Not modified |
| E2E Tests | OK | Test task comment updated correctly |
| Skill Body | OK | SKILL.md table cell updated correctly |
| References & Assets | Issue | orchestrator-eval-run.md emptied — two dangling links to an empty file |
| Repo Hygiene | OK | No secrets, scoped changes, no unrelated modifications |
Issues for Manual Review
- Confirm whether the
orchestrator-eval-run.mdcontent is intentionally being removed (moved to another location or deprecated) or was accidentally emptied. The PR description says "Updates alluip or evalreferences touip eval" which implies a rename, not a content removal.
Conclusion
Request changes. The rename in SKILL.md, evaluate.md, and the test YAML is correct and clean. However, orchestrator-eval-run.md was emptied to 0 bytes instead of being updated — leaving two links pointing to an empty file and removing the entire runtime eval CRUD reference. This needs to be resolved before merging: either restore the content with uip eval substituted, or delete the file and clean up the links.
|
Claude finished @AAgnihotry's task in 1m 42s —— View job Coder-eval task lint (advisory)1 task YAML changed; 0 Critical, 0 High, 0 Medium, 0 Low, 1 OK. Rubric: .claude/commands/lint-task.md. This check is advisory and never blocks merge. Evidence of passing run❌ High — PR body does not claim the changed task has been run and passed. The change is documentation-only (one word in the
Or, since this is a comment-only change that cannot affect execution, a note like "Change is description-only; no behavioral impact" would also satisfy this. Per-task lint
|
Eval commands moved from orchestrator-tool to a standalone eval-tool package in UiPath/cli#4025. Commands are now `uip eval ...` instead of `uip or eval ...`. Updates the command catalogue in uip-catalog-snapshot.json: removes the old `or eval` entries and adds `eval` entries in their place. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The previous commit emptied the file instead of updating it in place. Restores all 464 lines with `uip or eval` replaced by `uip eval`. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rockymadden
left a comment
There was a problem hiding this comment.
Reviewed against a local build of cli#4025 rather than just reading the diff. The doc edits are correct, mechanical, and complete. My concerns are about the generated file and cross-repo timing, not the rename itself.
Verified, not assumed
| Check | Result |
|---|---|
| Content integrity | orchestrator-eval-run.md is 464 lines on both main and head; SKILL.md 87/87. Nothing lost — worth confirming since one commit is titled "restore orchestrator-eval-run.md content" |
Leftover or eval refs |
Zero across skills/, preview/, tests/ |
| Snapshot invariants | Still sorted, still unique, 32 in / 32 out |
| Snapshot accuracy | I walked the real command tree off the built eval-tool from cli#4025 — the 32 entries match exactly, no extras, nothing missing |
| CI | 54 pass, 3 skipped. Verb-gate re-ran across every skill (a snapshot edit triggers a full re-gate) and passed |
Major — uip-catalog-snapshot.json is a generated file, and this creates a merge-order hazard
That file is produced nightly by .github/workflows/refresh-uip-catalog.yml, which installs a live uip and walks it. Its header records provenance:
"generated_at": "2026-09-04T04:08:47Z",
"cli_version": "1.202.0-dev.8521",Hand-adding the 32 eval * verbs makes the file assert that build ships uip eval. It doesn't, until cli#4025 merges and @uipath/eval-tool is published to the channel the refresh job installs from.
Failure mode if this merges first: tonight's refresh regenerates from a CLI with no uip eval, reverts the 32 entries back to or eval *, and the verb-gate then fails skills/uipath-agents — whose docs now say uip eval. Self-inflicted red on an unrelated auto-PR.
Fix: merge cli#4025 first and confirm the eval-tool is published, then merge this. Either let the nightly refresh regenerate the snapshot on its own, or keep the hand-edit but land both in the right order. Either way, state the ordering constraint in the PR body so whoever hits merge knows.
Minor — missing .claude/rules/cli-renames.md row
That file is the documented registry of retired verbs and feeds /lint-task's Medium CLI-verb hint via scripts/check-cli-verbs.py. This rename qualifies:
+| `or eval` | `eval` | uip 1.202.0|The doc's "drop the row once grep returns nothing" clause doesn't argue against adding it — I checked, and uip functions and uip resource both have 0 remaining references in tests/ and skills/ while their rows are still in the table. Without the row, an author or agent writing uip or eval ... (the spelling in every pre-1.202 doc, and in model training data) gets no replacement hint.
Minor — PR body omits the snapshot from "Changed files"
The list names 4 of the 5 changed files, and the omitted one is the generated file carrying the cross-repo timing constraint. That's precisely the file a reviewer needs pointed at.
Nit — orchestrator-eval-run.md filename is now half-stale
The commands no longer live in the orchestrator tool. The content is still legitimately Orchestrator-scoped (process key = an Orchestrator release), so the SKILL.md row label reads fine, but the filename now implies the tool prefix is or. Two inbound links to update (SKILL.md, evaluate.md) if you rename. Fine to leave it and accept the drift.
Nit — the one test-plan box is unchecked
- [ ] Grep confirms zero remaining uip or eval references is the trivially verifiable item, and it does pass. Confirmed.
Not blocking on the diff — it's accurate and green. The one change I'd ask for is the cli-renames.md row; the rest is sequencing, which is a merge-button decision. Add the row, note the ordering, merge after cli#4025, and this is good to go.
Addresses PR review feedback — ensures /lint-task hints at the canonical `uip eval` spelling when authors use the old `uip or eval` prefix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rockymadden
left a comment
There was a problem hiding this comment.
Re-review. Verified against the live CLI (uip 1.203.0 installed, @uipath/eval-tool@1.203.0-dev.8620 published) and a local merge into current main, not just the diff.
What
uip or eval → uip eval across uipath-agents docs, one test YAML, the catalog snapshot, and the rename registry. Follows the CLI's move of eval commands out of orchestrator-tool into a standalone eval-tool package (UiPath/cli#4025).
My last-pass asks
| Ask | Status |
|---|---|
Add the or eval → eval row to cli-renames.md |
✅ ebe9b3a |
| State the merge-order constraint in the PR body | ✅ "Merge order" section |
| List the snapshot under "Changed files" | ✅ added |
| Merge after cli#4025 + eval-tool publish | ✅ moot, both landed |
Verified, not assumed
| Check | Result |
|---|---|
uip or eval actually retired? |
Yes. uip or eval --help → unknown command 'eval'; no eval under uip or |
| Doc command tree | Matches uip eval --help exactly, all 7 groups |
| Doc flags | Spot-checked execute-and-evaluate, evaluator create, schedule create against 1.203.0. Every documented flag exists, no drift |
run-offline-evals in the test YAML |
Real alias of execute-and-evaluate, confirmed in its usage line |
| Leftover refs | Zero uip or eval in the tree post-merge |
| Coverage | Only 4 files in the repo mention these commands. All 4 updated |
| Links | 6779 relative links resolve |
Verb gate, uipath-agents |
main 90 soft-stale / 0 blocking → merged 53 / 0. Clears 37 warnings |
The timing hazard I flagged resolved itself
The nightly refresh already regenerated main's snapshot:
| snapshot | cli_version | eval * |
or eval * |
|---|---|---|---|
| 2026-09-09 | 1.203.0-dev.8572 | 0 | 32 |
| 2026-09-10 | 1.203.0-dev.8609 | 32 | 0 |
So main today ships docs naming a verb its own catalog no longer has. This PR is the fix, not the risk.
Minor — the snapshot hunk is now dead weight
The branch is 86 commits behind. Its snapshot is 1.202.0-dev.8521, 18 verbs short of main (agent review-history, insights groups, insights roles, login profiles, rpa remote start|status, ...).
I ran the merge locally: git resolves it cleanly and the snapshot comes out unchanged from main. Nothing regresses. The 32-line hunk just contributes nothing at this point. A rebase drops it; leaving it is harmless.
Recommendation
Approve. Two nits inline, neither worth a round trip. Main is wrong today and this fixes it.
tl;dr — Rename is correct and complete, checked against the real 1.203.0 CLI rather than the diff. The cross-repo timing hazard from my last pass is gone: cli#4025 landed and the nightly refresh already put uip eval in main's snapshot. The snapshot hunk here is redundant but merges to a no-op. Approve, two nits.
| | `functions` | `function` | uip 1.200.0| | ||
| | `sc` | `aops` | uip 1.201.0| | ||
| | `cicd` | `aops` | uip 1.201.0| | ||
| | `or eval` | `eval` | uip 1.202.0| |
There was a problem hiding this comment.
Nit — retired-at version is off by one minor.
Snapshot history puts the cut inside the 1.203.0-dev line:
1.203.0-dev.8572(2026-09-09): 32or eval *, 0eval *1.203.0-dev.8609(2026-09-10): 0or eval *, 32eval *
-| `or eval` | `eval` | uip 1.202.0|
+| `or eval` | `eval` | uip 1.203.0|This file states column 3 is informational only, so nothing breaks. It is still the column someone reads to date the break.
| - [Evaluation Sets and Test Cases](evaluation-sets.md) — creating sets, adding test cases, simulation options | ||
| - [Running Evaluations](running-evaluations.md) — start, status, results, compare | ||
| - [Orchestrator Runtime Eval Commands](orchestrator-eval-run.md) — full CRUD for evaluators, eval sets, data points, run/schedule/results against published Orchestrator packages | ||
| - [Runtime Eval Commands](orchestrator-eval-run.md) — full CRUD for evaluators, eval sets, data points, run/schedule/results via `uip eval` |
There was a problem hiding this comment.
Nit — this link text now disagrees with the target's H1.
orchestrator-eval-run.md:1 is still # Orchestrator Runtime Eval Commands, but the link here dropped "Orchestrator". Either spelling is defensible (the content is genuinely Orchestrator-scoped: process key = a release), just not one each.
Either restore it here:
-- [Runtime Eval Commands](orchestrator-eval-run.md)
++ [Orchestrator Runtime Eval Commands](orchestrator-eval-run.md)or drop it from the H1 in the target file.
Summary
uip or evalreferences touip evalacross skill docs and test tasksMerge order
This PR must merge after UiPath/cli#4025 and after
@uipath/eval-toolis published to the channel the nightly refresh job installs from. Otherwise, tonight'srefresh-uip-catalog.ymlrun will regenerate the snapshot from a CLI withoutuip eval, reverting the 32 entries back toor eval *.Changed files
skills/uipath-agents/SKILL.md— capability table rowskills/uipath-agents/references/lowcode/evaluations/orchestrator-eval-run.md— full reference doc (all command examples)skills/uipath-agents/references/lowcode/evaluations/evaluate.md— cross-reference link texttests/tasks/uipath-agents/lowcode/eval_run/eval_run.yaml— test task commentassets/uip-catalog-snapshot.json— hand-added 32eval *verbs (will be regenerated by nightly refresh after cli#4025 lands).claude/rules/cli-renames.md— added retiredor eval→evalrowTest plan
uip or evalreferences🤖 Generated with Claude Code