The browse/design/make-pdf setup resolvers built the fallback binary path as
"$HOME" + dir.replace(/^~/, ''), which is only correct for ~-rooted dirs.
Env-var hosts carry an absolute $GSTACK_* dir, so the generated fallback
became $HOME$GSTACK_.../browse — a path that never exists. New toShellPath()
in scripts/resolvers/types.ts expands ~ to $HOME and passes absolute
env-var dirs through untouched; all five call sites route through it.
Claude-host generated output is byte-identical, so no SKILL.md regeneration
is needed here.
Closes#2055.
Contributed by @simjak (PR #2056).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>