The pql post-checkout hook is untracked (local `pql init` install), so a fresh `git worktree add` has none — and `[ -f x ] && . x` returns 1 when absent (the script's last statement), which worktree add propagates as a hard failure. Use an if-guard and always exit 0: post-checkout is best-effort and must never abort a checkout / worktree creation. (Worth reporting upstream to pql.) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>