Skip to content

fix(uipath-feedback): send description via --description-file, not inline multi-line arg [PILOT-6404]#2114

Open
gabrielavaduva wants to merge 1 commit into
mainfrom
fix/feedback-skill-powershell-description
Open

fix(uipath-feedback): send description via --description-file, not inline multi-line arg [PILOT-6404]#2114
gabrielavaduva wants to merge 1 commit into
mainfrom
fix/feedback-skill-powershell-description

Conversation

@gabrielavaduva

@gabrielavaduva gabrielavaduva commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Why

The uipath-feedback skill's Step 4 built the CLI call with a bash-only heredoc ($(cat <<'FEEDBACK_EOF' … )). On Windows PowerShell that syntax doesn't exist, and inlining the multi-line markdown as --description "…" is mangled by PS 5.1's native-argument serializer (bullet lines become options → ValidationError). The agent then retried five variants of the same broken pattern, misdiagnosed it as a CLI bug, and silently fell back to writing feedback-report.md — the feedback was never sent. This is PILOT-6404.

What

  • Step 4 now writes the sanitized description body to a temp file with the Write tool (no shell heredoc — cross-shell) and passes --description-file, which is immune to shell quoting on PowerShell, cmd, and bash.
  • Added a note to diagnose a shell-quoting ValidationError as such instead of blaming the CLI or retrying the inline form.
  • Clarified the local-file fallback is only for a genuine send failure, not a self-inflicted quoting error.

Companion / ordering

Depends on the CLI adding --description-file (UiPath/cli#3129). That should merge/release first; the skill notes a stdin fallback for older CLIs.

🤖 Generated with Claude Code

…line multi-line arg [PILOT-6404]

Windows PowerShell 5.1 cannot serialize a multi-line --description into the
single command-line string a native command receives, so the skill's
bash-heredoc invocation split the markdown bullet lines into options
(ValidationError) and the send silently fell back to a local file. Write the
sanitized body to a temp file with the Write tool and pass --description-file,
which is immune to shell quoting on PowerShell, cmd, and bash. Add guidance to
diagnose a shell-quoting failure as such instead of blaming the CLI.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Smoke test coverage gap — the following changed skills have no tests under tests/tasks/:

  • uipath-feedback

Consider adding smoke tests before merging.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Claude finished @gabrielavaduva's task in 2m 17s —— View job


PR Review: fix(uipath-feedback) — --description-file instead of inline multi-line arg

  • Read review criteria and project conventions
  • Read full diff
  • Read full changed file for context
  • Check skill-specific rules (links, cross-skill refs, secrets)
  • Post review findings

Summary

This PR fixes a cross-platform bug in the uipath-feedback skill where Step 4 used a bash-only heredoc ($(cat <<'FEEDBACK_EOF' … )) to pass the multi-line description body. On Windows PowerShell this syntax doesn't exist, and inlining the body as --description "…" gets mangled by PS 5.1's native-argument serializer (lines starting with - are parsed as options → ValidationError). The fix writes the description to a temp file via the Write tool and passes --description-file, which is shell-agnostic.

Change-by-Change Review

1. skills/uipath-feedback/SKILL.md — Step 4 rewrite

Severity: Low (with one Medium sub-finding)

The core change is correct and well-motivated:

  • Replaces the bash heredoc with a Write-tool-then---description-file pattern — cross-shell safe ✓
  • Adds a clear "never inline multi-line description" instruction at the top of Step 4 — prescriptive ✓
  • Adds a "diagnose failures correctly" paragraph so the agent doesn't misattribute quoting errors to the CLI — good agent guidance ✓
  • Tightens the fallback to genuine send failures only — consistent with Critical Rule feat(CodedAgents): file-sync skill and deployment fixes #6
  • Stdin fallback for older CLIs is mentioned — graceful degradation ✓

Medium — Temp file not cleaned up. Step 4 tells the agent to write the description to <temp>/uip-feedback/description.md (line 297), but the cleanup block at lines 322–326 only removes ${TMPDIR:-${TMP:-/tmp}}/uip-feedback-attachments. The uip-feedback/ directory (containing description.md) is never cleaned up. Either widen the cleanup to also remove uip-feedback/, or write the description file inside the existing uip-feedback-attachments/ directory so one rm -rf catches both.

Fix this →

Low — Stdin fallback is vague. Line 310 says "pipe the body via stdin instead; do not inline it" but doesn't show the command shape (e.g., cat description.md | uip feedback send … --description-file -). An agent on an older CLI may not know how to do this. Consider either showing the stdin invocation or noting the minimum CLI version that supports --description-file.

What's Missing

  • No teststests/tasks/uipath-feedback/ does not exist (pre-existing gap, already flagged by the smoke-test bot). Not introduced by this PR, but noted for completeness.
  • No CODEOWNERS entry/skills/uipath-feedback/ has no dedicated CODEOWNERS line (the repo-wide * wildcard covers it). Pre-existing, not introduced by this PR.

Area Ratings

Area Status Notes
Frontmatter OK Not modified; still valid
E2E Tests Pre-existing gap No tests/tasks/uipath-feedback/ directory
Skill Body OK (1 Medium) Temp file cleanup gap
References & Assets OK No reference files changed
Repo Hygiene OK No secrets, no cross-skill deps, change is well-scoped

Issues for Manual Review

  • CLI dependency. The PR description notes this depends on UiPath/cli#3129 adding --description-file. Confirm that CLI change has merged (or will merge first) so agents don't hit an unknown-flag error. The stdin fallback instruction provides some safety net, but it's intentionally vague.
  • Verify --description-file flag name. Cannot confirm the exact flag name matches what the CLI actually ships — verify against the CLI's help output or the linked PR.

Conclusion

Clean, well-motivated fix for a real cross-platform failure. The core change (heredoc → Write tool + --description-file) is correct and the added agent guidance (diagnosis paragraph, tightened fallback) is valuable. One Medium finding: the description temp file at <temp>/uip-feedback/ isn't cleaned up by the existing rm -rf that only targets uip-feedback-attachments/. Worth fixing before merge. Otherwise looks good.


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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant