docs(uipath-solution): document resource add and resource remove#1027
Conversation
|
Claude finished @alexenica's task in 2m 26s —— View job PR Review:
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | Description under 1024 chars (750), name matches folder, new commands added to command list |
| E2E Tests | Issue (Medium) | No test task for resource add / resource remove — existing tasks still valid but don't cover new capabilities |
| Skill Body | OK | SKILL.md reference table updated correctly |
| References & Assets | OK (Low nits) | All links resolve, no orphaned files, no cross-skill references. Two low-severity accuracy nits in develop-solution.md |
| Repo Hygiene | OK | CODEOWNERS already covers /skills/uipath-solution/. No secrets, no cross-skill deps, changes scoped to one skill |
Issues for Manual Review
- CLI command accuracy: Verify that
--source,--kind,--name,--type,--folder-path,--cloud-keyflags onresource addand the positional<resource-key>onresource removematch the actual CLI surface from UiPath/cli#2221. Automated review cannot verify CLI flag correctness against the actual tool. - Output shape: The JSON response bodies (lines 248–263 for
add, lines 310–320 forremove) and the ambiguous-match error (lines 271–276) should be spot-checked against actual CLI output. - Idempotency semantics for
remove: Line 31 claims bothaddandremoveare "idempotent" but Step 10 (line 323) saysremoveon a missing key returnsFailure. Confirm whether the CLI team intendsremoveto be idempotent (return success on already-removed key) or fail-on-missing.
Conclusion
Clean, well-organized documentation PR. The new content follows the skill's existing patterns (flag tables, output shapes, comparison tables, cheat sheet entries, cross-references from scenario files). Two low-severity nits: (1) the "idempotent siblings" label may overstate remove's behavior, and (2) the verify-after-mutation gotcha could benefit from a resource-level check now that it name-drops add/remove. The missing test task is the only medium-severity gap, and it's consistent with the repo's current test coverage posture. Recommend approve with nits.
…fy steps Address review on #1027: - `remove` is not idempotent — it fails with `Resource not found in solution` on a missing key. Reword the "atomic, idempotent siblings" line so only `add` is called idempotent. - The "verify state after every mutation" gotcha showed only project-level checks (.uipx vs package/process) though it now name-drops add/remove. Add a resource-level check (`resource list --source local`) for resource mutations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The verb-check CI gate fails the whole skill on this stale verb (`uip auth login` doesn't exist; the CLI uses `uip login`). Pre-existing in tenant-library-search-guide.md, surfaced now that #1027 touches the skill. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Two atomic resource mutation verbs just landed in the CLI (UiPath/cli#2221) — `uip solution resource add` (local virtual or cloud import) and `uip solution resource remove`. This wires them into the Operate half of the skill: - `develop-solution.md`: Step 9 (add) + Step 10 (remove) full contract — flag table, output shape, idempotency semantics, ambiguous-match candidate format, relationship to `refresh`. Renumbers upload → 11 / delete → 12. Updates the flow diagram, the "--solution-folder defaults to cwd" note, and the cheat sheet. - `solution-overview.md`: command tree gets the two new verbs. - `scenarios.md`: triage rows pointing at the new commands for single-resource create / delete intents. - `scenarios/manual-edits.md`: opening paragraph reframed — create/delete are now CLI-covered, only field-level updates still require a manual edit or SW round-trip. - `scenarios/virtual-resource.md`: notes the new no-bindings path to create a virtual stub via `resource add --source local`. - `SKILL.md`: command list in description + Develop reference row.
11 review agents (2 opus + 2 sonnet + 1 haiku × 2 PRs, plus a sweep) flagged 1 must-fix and several should-fix issues across the skills repo. Addressing the actionable ones now. CLI-aligned changes (vocabulary + output shape, follow PR #2221) - `--source` value renamed `cloud` → `remote` everywhere, matching `resource list --source remote`. One vocab across commands. - Output field `FolderPath` renamed to `Folder` (matches `list`). - `Source` value in `add` output renamed `cloud` → `remote`. - `--kind` canonicalization claim corrected: trim + lowerFirstChar (no ALLCAPS folding — folding mangled multi-word kinds). - `add --source remote` ambiguous-match sample uses real two-space format and canonicalized `kind=queue`, not the column-aligned Pascal placeholder the prior draft fabricated. - `--name` validation note: path-separators and `: * ? " < > |` rejected (CLI-level path-traversal guard). - `--folder-path` with `--source local` is now hard-rejected, not warn+applied — call this out in the option table. - `--login-validity` removed from `resource remove` (the command no longer hits cloud; it's offline-friendly). - `resource remove` is now GUID-validated (mention it in the table). Sibling skills updated for routing completeness (council sweep) - `uipath-platform/references/uip-commands.md`: command-ownership index now lists `resource list|refresh|get|add|remove`. This is what other agents grep to route a command to the owning skill. - `uipath-agents/references/lowcode/project-lifecycle.md`: command table gets `solution resource add` and `solution resource remove` rows so agent-skill workflows can reach them. - `uipath-maestro-flow/references/shared/cli-commands.md`: new section `## uip solution resource add / remove` modeled after the existing `refresh` section. - `uipath-maestro-case/references/case-commands.md`: command table gets a row covering both verbs. Info-arch + readability tweaks - `SKILL.md` `when_to_use` extended with explicit triggers for "add a queue/asset to my solution", "add a resource to a solution", "remove a resource from a solution", "import a cloud queue into my solution". Fixes the false-negative skill-load gap. - "Virtual stub" is now defined inline at first use in Step 9 (under `--source local`) rather than left as jargon. - New forward-link from Step 7 (Refresh) into Step 9/10 so a reader starting on refresh discovers the atomic verbs. - Cheat sheet rows regrouped so resource-level ops cluster together and project-level ops sit above them — preserves the original lifecycle grouping the council flagged was broken. - Triage rows in `scenarios.md` re-clustered so the manual-edits rows stay adjacent (was split by the new add/remove rows). - `scenarios/manual-edits.md` link split: was a single anchor for "Step 9–10", now two separate links to each anchor. - `scenarios/virtual-resource.md` adds "offline-friendly" callout for the no-binding path. - `develop-solution.md` "--solution-folder defaults" note now covers refresh too (it has the same .uipx assertion). Out of scope on purpose - Strict `--fail-if-exists` flag for `add` (excluded by request). - `remove` Data missing `Source`: no reliable signal post-create to infer local vs remote provenance; skip. - `solution-overview.md` lifecycle mermaid does not gain add/remove — that diagram shows the promotion lifecycle, not single-resource ops. The command tree underneath was updated. - Step 8 (`get`) was not reordered — its read-then-mutate cluster position reads naturally enough.
…fy steps Address review on #1027: - `remove` is not idempotent — it fails with `Resource not found in solution` on a missing key. Reword the "atomic, idempotent siblings" line so only `add` is called idempotent. - The "verify state after every mutation" gotcha showed only project-level checks (.uipx vs package/process) though it now name-drops add/remove. Add a resource-level check (`resource list --source local`) for resource mutations. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move the agents / maestro-case / maestro-flow / platform command-list cross-references for `solution resource add`/`remove` into a separate PR (#1055) so this PR stays scoped to uipath-solution and only needs its own CODEOWNERS (merlot/orange/RaduAna). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Completes the resource CRUD docs alongside add/remove (CLI PR UiPath/cli#2221). `edit` patches an existing resource's spec via the SDK's updateConfigurationAsync — the only command that mutates a resource already in the solution (`refresh` is import-only and never overwrites). - develop-solution.md: new Step 11 (Edit a Resource) — `--patch`/`--set` contract, the SDK silent-skip behavior (unknown/reference/read-only props ignored, not an error), identity fields structurally unreachable, secret-upsert path, rename-with-duplicate-protection, top-level (not deep) merge, get↔edit shape symmetry. Renumber Upload→12, Delete→13. Flow diagram, Step-7 forward link, cheat sheet, and the `--solution-folder`/`.uipx`-manifest notes all gain edit. - solution-overview.md: command tree gets `edit <resource-key>`. - scenarios.md: triage rows route "change a field on an existing resource" to `resource edit`, plus "refresh didn't pick up my spec edit" (expected — refresh never overwrites) and "edit ignored a property" (SDK skips reference/read-only/unknown). - manual-edits.md: reframed — CRUD is now complete; `edit` is the first-choice for spec changes (incl. rename). Manual JSON editing drops to a true last resort for the narrow set the SDK won't write. - SKILL.md: description command list + Develop reference row + several `when_to_use` triggers (edit/update a resource, change a queue/asset field, set an asset value, patch a resource spec).
Mirror CLI PR UiPath/cli#2221 — `--set <prop>=<value>` was removed from the `resource edit` command. The scalar shortcut JSON-parsed values, which silently coerced numeric-looking strings to numbers and surprised agents when the SDK schema required strings (hit live on Queue's \`riskSlaInHours\` against Studio Web's required-field validator). - develop-solution.md Step 11: examples now patch-only; option table drops the --set row and marks --patch as required; new short paragraph explains the design decision ("Why no --set k=v shortcut?"). - develop-solution.md cheat sheet: edit row trimmed to --patch. - solution-overview.md command tree: edit entry no longer mentions --set.
8e2124c to
b14d7d1
Compare
Split out of #1027 so the uipath-solution doc PR needs only its own CODEOWNERS (merlot/orange/RaduAna). These touch other teams' skills purely to keep their command lists complete now that the CLI ships `uip solution resource add` / `remove`: - uipath-platform: add `add|remove` to the `uip solution` subcommand enumeration - uipath-agents (lowcode project-lifecycle): two cheat-sheet rows - uipath-maestro-case: one command-table row - uipath-maestro-flow (shared cli-commands): dedicated section, parity with the existing per-command sections Commands themselves are owned/documented by uipath-solution (#1027) and UiPath/cli#2221. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lls (#1055) * docs: cross-reference `solution resource add`/`remove` in sibling skills Split out of #1027 so the uipath-solution doc PR needs only its own CODEOWNERS (merlot/orange/RaduAna). These touch other teams' skills purely to keep their command lists complete now that the CLI ships `uip solution resource add` / `remove`: - uipath-platform: add `add|remove` to the `uip solution` subcommand enumeration - uipath-agents (lowcode project-lifecycle): two cheat-sheet rows - uipath-maestro-case: one command-table row - uipath-maestro-flow (shared cli-commands): dedicated section, parity with the existing per-command sections Commands themselves are owned/documented by uipath-solution (#1027) and UiPath/cli#2221. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs: cross-reference `solution resource edit` in sibling skills Follows the add/remove cross-references in this PR — `resource edit` (CLI PR UiPath/cli#2221) patches an existing resource's spec by key and is the only command that mutates a resource already in the solution (`refresh` never overwrites). Add it alongside add/remove in each sibling skill's command reference, matching the existing format: - uipath-platform/references/uip-commands.md: ownership index resource verbs → `…|add|remove|edit`. - uipath-agents/references/lowcode/project-lifecycle.md: new command-table row for `resource edit`. - uipath-maestro-flow/references/shared/cli-commands.md: section retitled `add / remove / edit` with `--patch`/`--set` examples and the "refresh never overwrites" note. - uipath-maestro-case/references/case-commands.md: command-table row extended to cover edit; link bumped to Step 9–11. * fix: clear pre-existing stale-verb gate failures in touched skills The verb-gate runs on the whole skill whenever any file in it changes, so adding `resource edit` to platform/flow/case surfaced three latent stale-verb references unrelated to this PR's content: - uipath-platform/references/uip-commands.md: the line teaching that `uip orchestrator` does NOT exist (correct prefix is `or`) tripped the checker on its own example — add `<!-- uip-check-skip -->`. - uipath-maestro-flow/references/shared/cli-conventions.md: the `< 0.3.4` fallback `FLOW_CMD="uip flow"` in the version-detection snippet — skip-marked like the sibling references on lines 27/39. - uipath-maestro-case/references/troubleshooting-guide.md: genuine stale verb `uip orchestrator folder list` → `uip or folders list`. Verified locally: `check-skill-verbs.py` reports 0 hard-stale findings across the three skills. * docs: drop --set from `solution resource edit` cross-references Mirror CLI PR UiPath/cli#2221 — `--set <prop>=<value>` was removed from the edit command (scalar JSON-coercion silently turned numeric-looking strings into numbers, breaking Queue/Asset schemas that require strings — hit live against Studio Web's required-field validator on \`riskSlaInHours\`). - uipath-agents/.../project-lifecycle.md: command-table row trims the "(or --set <prop>=<value>)" parenthetical. - uipath-maestro-flow/.../cli-commands.md: --set example replaced with a multi-key --patch example + an explicit stdin example. - uipath-maestro-case/.../case-commands.md: "patch spec via --patch/--set" → "patch spec via --patch '<json>'". --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Two atomic resource-mutation verbs just landed in the CLI (UiPath/cli#2221):
This PR wires both into the Operate half of `uipath-solution` so the skill's docs match the new CLI surface.
What changed
Test plan
🤖 Generated with Claude Code