fix(dev-setup): run setup non-interactively in dev/workspace mode

Conductor runs bin/dev-setup under a forwarded pty, so any setup prompt
(skill-prefix, plan-tune consent) would hang the workspace. Detach stdin
(`setup </dev/null`) so every prompt takes its smart non-interactive default:
flat skill names, skip the global plan-tune hook install without writing a
decline marker. Saved prefix/config preferences are still honored, and a dev
workspace no longer silently mutates ~/.claude/settings.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Garry Tan 2026-05-30 10:34:51 -07:00
parent adbd609252
commit 1576a8054d
No known key found for this signature in database
GPG Key ID: C1F69E85C74EFE1D
1 changed files with 11 additions and 2 deletions

View File

@ -56,8 +56,17 @@ if [ ! -e "$AGENTS_LINK" ]; then
ln -s "$REPO_ROOT" "$AGENTS_LINK"
fi
# 6. Run setup via the symlink so it detects .claude/skills/ as its parent
"$GSTACK_LINK/setup"
# 6. Run setup via the symlink so it detects .claude/skills/ as its parent.
#
# Workspace/dev setup MUST be non-interactive: Conductor runs this under a
# forwarded pty, so any `read` in setup (skill-prefix prompt, plan-tune hook
# consent) would hang the workspace forever. Detaching stdin makes every
# setup prompt take its smart non-interactive default (flat skill names; skip
# the global plan-tune hook install without writing a decline marker, so a
# later hands-on `./setup` can still offer it). A dev workspace should never
# silently mutate ~/.claude/settings.json — pass --plan-tune-hooks explicitly
# if you do want them. (Saved prefix/config preferences are still honored.)
"$GSTACK_LINK/setup" </dev/null
echo ""
echo "Dev mode active. Skills resolve from this working tree."