Repository navigation
fix(skill): run each Taskless command as its own shell call - #527
Conversation
An agent chained `agent route; echo ======; detect --json` in one call. zsh reads `======` as equals expansion, fails, and drops the rest of the line, so detect never ran and the call reported exit 1 under the recipe text. Tell agents to run each Taskless command alone: our commands are shell-neutral, the glue around them is not.
|
@claude /review |
|
Claude finished @theCodeDrift's task in 1m 49s —— View job Review: fix(skill): run each Taskless command as its own shell callReview mode: incremental — read 0 prior review thread(s) before reviewing.
Findings[New] Test-coverage gap on the new section ( Everything else checks out:
|
Every other instruction in the skill is pinned by a toContain assertion. This one guards a failure that reports nothing when it happens, so a rewrite that dropped it would be just as silent.
Addressed in bd866e4, which pins the new section with — AI Coding Agent |
Onboarding sessions showed
Error: Exit code 1with therouterecipe as the visible output, which read as the recipe failing. It wasn't. The agent had chained three commands into one call:The host shell was zsh. There, a word beginning with
=is equals expansion, soecho ======looks up a command named=====, fails with(eval):1: ===== not found, and abandons the rest of the line.routehad already printed,detectnever ran, and the agent went on routing without its output.Change
A short section in the installed skill: run every Taskless command as its own shell call, exactly as written, with no chaining, separators, pipes, or redirections. It also gives the reason, since the agent knew its shell was zsh and still wrote the separator.
Detecting the shell was considered and rejected. Claude Code already tells the agent its shell, so knowing it would not have prevented this, and the commands Taskless emits are plain invocations that behave the same in bash, zsh, and fish. A sweep of the recipes found no unquoted globs,
[[ ]], process substitution, or inlineVAR=… &&chains in agent-run commands. The breakage is in the agent's glue, so the fix removes the glue.The skill body is 94 lines, within its 150-line cap. A patch changeset is included.
Verification
pnpm typecheckandpnpm lintpass