diff --git a/SKILL.md b/SKILL.md index 395ae1311..793eb1b2a 100644 --- a/SKILL.md +++ b/SKILL.md @@ -426,7 +426,7 @@ Auto-shuts down after 30 min idle. State persists between calls (cookies, tabs, _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/benchmark/SKILL.md b/benchmark/SKILL.md index a13c2e8bc..f83dacbb9 100644 --- a/benchmark/SKILL.md +++ b/benchmark/SKILL.md @@ -389,7 +389,7 @@ plan's living status. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/browse/SKILL.md b/browse/SKILL.md index ed840e692..9def50df2 100644 --- a/browse/SKILL.md +++ b/browse/SKILL.md @@ -393,7 +393,7 @@ State persists between calls (cookies, tabs, login sessions). _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/canary/SKILL.md b/canary/SKILL.md index 32cacd514..b559ee8ef 100644 --- a/canary/SKILL.md +++ b/canary/SKILL.md @@ -498,7 +498,7 @@ plan's living status. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/design-consultation/SKILL.md b/design-consultation/SKILL.md index a8b512b5d..94c507c2d 100644 --- a/design-consultation/SKILL.md +++ b/design-consultation/SKILL.md @@ -563,7 +563,7 @@ If the codebase is empty and purpose is unclear, say: *"I don't have a clear pic _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else @@ -603,7 +603,7 @@ If browse is not available, that's fine — visual research is optional. The ski _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design if [ -x "$D" ]; then echo "DESIGN_READY: $D" else @@ -611,7 +611,7 @@ else fi B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "BROWSE_READY: $B" else diff --git a/design-html/SKILL.md b/design-html/SKILL.md index cc5aebcd0..2975ae643 100644 --- a/design-html/SKILL.md +++ b/design-html/SKILL.md @@ -512,7 +512,7 @@ around obstacles. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design if [ -x "$D" ]; then echo "DESIGN_READY: $D" else @@ -520,7 +520,7 @@ else fi B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "BROWSE_READY: $B" else @@ -555,7 +555,7 @@ data, not project files. They persist across branches, conversations, and worksp _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/design-review/SKILL.md b/design-review/SKILL.md index 684177b16..a6dc181e4 100644 --- a/design-review/SKILL.md +++ b/design-review/SKILL.md @@ -570,7 +570,7 @@ After the user chooses, execute their choice (commit or stash), then continue wi _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else @@ -764,7 +764,7 @@ Only commit if there are changes. Stage all bootstrap files (config, test direct _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design if [ -x "$D" ]; then echo "DESIGN_READY: $D" else @@ -772,7 +772,7 @@ else fi B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "BROWSE_READY: $B" else diff --git a/design-shotgun/SKILL.md b/design-shotgun/SKILL.md index 032231461..dd886672a 100644 --- a/design-shotgun/SKILL.md +++ b/design-shotgun/SKILL.md @@ -506,7 +506,7 @@ visual brainstorming, not a review process. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design if [ -x "$D" ]; then echo "DESIGN_READY: $D" else @@ -514,7 +514,7 @@ else fi B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "BROWSE_READY: $B" else diff --git a/devex-review/SKILL.md b/devex-review/SKILL.md index 70cc3fdfb..9ffa19c4b 100644 --- a/devex-review/SKILL.md +++ b/devex-review/SKILL.md @@ -560,7 +560,7 @@ branch name wherever the instructions say "the base branch" or ``. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index af2394561..44a7c1439 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -515,7 +515,7 @@ plan's living status. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/office-hours/SKILL.md b/office-hours/SKILL.md index 289ae6467..1c80c2e62 100644 --- a/office-hours/SKILL.md +++ b/office-hours/SKILL.md @@ -525,7 +525,7 @@ plan's living status. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else @@ -1062,7 +1062,7 @@ Present via AskUserQuestion. Do NOT proceed without user approval of the approac _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design [ -x "$D" ] && echo "DESIGN_READY" || echo "DESIGN_NOT_AVAILABLE" ``` diff --git a/open-gstack-browser/SKILL.md b/open-gstack-browser/SKILL.md index fad2736ba..1164a2716 100644 --- a/open-gstack-browser/SKILL.md +++ b/open-gstack-browser/SKILL.md @@ -520,7 +520,7 @@ anti-bot stealth, and custom branding. You see every action in real time. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/plan-design-review/SKILL.md b/plan-design-review/SKILL.md index 0779ee2cb..fa025299f 100644 --- a/plan-design-review/SKILL.md +++ b/plan-design-review/SKILL.md @@ -664,7 +664,7 @@ Report findings before proceeding to Step 0. _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) D="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/design/dist/design" ] && D="$_ROOT/.claude/skills/gstack/design/dist/design" -[ -z "$D" ] && D=~/.claude/skills/gstack/design/dist/design +[ -z "$D" ] && D=$HOME/.claude/skills/gstack/design/dist/design if [ -x "$D" ]; then echo "DESIGN_READY: $D" else @@ -672,7 +672,7 @@ else fi B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "BROWSE_READY: $B" else diff --git a/qa-only/SKILL.md b/qa-only/SKILL.md index a34932b5d..fd832bdb7 100644 --- a/qa-only/SKILL.md +++ b/qa-only/SKILL.md @@ -537,7 +537,7 @@ You are a QA engineer. Test web applications like a real user — click everythi _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/qa/SKILL.md b/qa/SKILL.md index fcffb10fd..a0cc5316b 100644 --- a/qa/SKILL.md +++ b/qa/SKILL.md @@ -612,7 +612,7 @@ After the user chooses, execute their choice (commit or stash), then continue wi _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else diff --git a/scripts/resolvers/types.ts b/scripts/resolvers/types.ts index 48204c91b..3a3cba06f 100644 --- a/scripts/resolvers/types.ts +++ b/scripts/resolvers/types.ts @@ -37,8 +37,8 @@ function buildHostPaths(): Record { skillRoot: root, localSkillRoot: config.localSkillRoot, binDir: `${root}/bin`, - browseDir: `${root}/browse/dist`, - designDir: `${root}/design/dist`, + browseDir: `$HOME/${config.globalRoot}/browse/dist`, + designDir: `$HOME/${config.globalRoot}/design/dist`, }; } } diff --git a/setup-browser-cookies/SKILL.md b/setup-browser-cookies/SKILL.md index 717d64056..2365e5dd8 100644 --- a/setup-browser-cookies/SKILL.md +++ b/setup-browser-cookies/SKILL.md @@ -408,7 +408,7 @@ If `CDP_MODE=true`: tell the user "Not needed — you're connected to your real _ROOT=$(git rev-parse --show-toplevel 2>/dev/null) B="" [ -n "$_ROOT" ] && [ -x "$_ROOT/.claude/skills/gstack/browse/dist/browse" ] && B="$_ROOT/.claude/skills/gstack/browse/dist/browse" -[ -z "$B" ] && B=~/.claude/skills/gstack/browse/dist/browse +[ -z "$B" ] && B=$HOME/.claude/skills/gstack/browse/dist/browse if [ -x "$B" ]; then echo "READY: $B" else