From 6d643c534b22d9e34d46ba77c1ca13ce8b86db1b Mon Sep 17 00:00:00 2001 From: William Voorhees Date: Sun, 31 May 2026 11:53:31 -0700 Subject: [PATCH] fix(ship): absolute bin path for gstack-next-version in landing-report/land-and-deploy/review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The queue-aware version allocator was invoked as a bare relative path `bun run bin/gstack-next-version` in landing-report, land-and-deploy, and review. When these installed skills run from a user's project repo, that relative path doesn't resolve (the util lives at the gstack install root), so the call fails and the `|| echo '{"offline":true}'` fallback fires — silently dropping queue-collision awareness and degrading to a local bump. ship/SKILL.md was already fixed to use the absolute `~/.claude/skills/gstack/bin/gstack-next-version`; this applies the same prefix to the three skills that were missed, matching the convention used by every other gstack bin call in these files. Non-Claude host variants already rendered `$GSTACK_ROOT/bin/...` correctly and are unaffected. Edited the .tmpl sources and regenerated; CI bin/ refs (version-gate.yml, .gitlab-ci.yml) are intentionally left bare since they run from the gstack repo root. --- land-and-deploy/SKILL.md | 2 +- land-and-deploy/SKILL.md.tmpl | 2 +- landing-report/SKILL.md | 2 +- landing-report/SKILL.md.tmpl | 2 +- review/SKILL.md | 2 +- review/SKILL.md.tmpl | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/land-and-deploy/SKILL.md b/land-and-deploy/SKILL.md index 2eb9faa6c..50029ea81 100644 --- a/land-and-deploy/SKILL.md +++ b/land-and-deploy/SKILL.md @@ -1159,7 +1159,7 @@ BASE_VERSION=$(git show origin/$BASE_BRANCH:VERSION 2>/dev/null | tr -d '\r\n[:s # We don't need the exact original level — we just need "a level" that passes to the util. # If the minor digit advanced, call it minor; patch digit, patch; etc. If base > branch, skip (not ours to land). # For simplicity: use "patch" as a conservative default; util handles collision-past regardless of input level. -QUEUE_JSON=$(bun run bin/gstack-next-version \ +QUEUE_JSON=$(bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump patch \ --current-version "$BASE_VERSION" 2>/dev/null || echo '{"offline":true}') diff --git a/land-and-deploy/SKILL.md.tmpl b/land-and-deploy/SKILL.md.tmpl index 98976ad02..9c9d1de3e 100644 --- a/land-and-deploy/SKILL.md.tmpl +++ b/land-and-deploy/SKILL.md.tmpl @@ -341,7 +341,7 @@ BASE_VERSION=$(git show origin/$BASE_BRANCH:VERSION 2>/dev/null | tr -d '\r\n[:s # We don't need the exact original level — we just need "a level" that passes to the util. # If the minor digit advanced, call it minor; patch digit, patch; etc. If base > branch, skip (not ours to land). # For simplicity: use "patch" as a conservative default; util handles collision-past regardless of input level. -QUEUE_JSON=$(bun run bin/gstack-next-version \ +QUEUE_JSON=$(bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump patch \ --current-version "$BASE_VERSION" 2>/dev/null || echo '{"offline":true}') diff --git a/landing-report/SKILL.md b/landing-report/SKILL.md index aec9978ba..c93da51d3 100644 --- a/landing-report/SKILL.md +++ b/landing-report/SKILL.md @@ -781,7 +781,7 @@ they'd claim for micro/patch/minor/major. Cheap (same gh call cached by bun). ```bash for LEVEL in micro patch minor major; do - bun run bin/gstack-next-version \ + bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump "$LEVEL" \ --current-version "$BASE_VERSION" \ diff --git a/landing-report/SKILL.md.tmpl b/landing-report/SKILL.md.tmpl index 32a8cc1ab..165fd173c 100644 --- a/landing-report/SKILL.md.tmpl +++ b/landing-report/SKILL.md.tmpl @@ -67,7 +67,7 @@ they'd claim for micro/patch/minor/major. Cheap (same gh call cached by bun). ```bash for LEVEL in micro patch minor major; do - bun run bin/gstack-next-version \ + bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump "$LEVEL" \ --current-version "$BASE_VERSION" \ diff --git a/review/SKILL.md b/review/SKILL.md index 4d8049d54..898d6d54c 100644 --- a/review/SKILL.md +++ b/review/SKILL.md @@ -1074,7 +1074,7 @@ Check whether this PR's claimed VERSION still points at a free slot in the queue BRANCH_VERSION=$(git show HEAD:VERSION 2>/dev/null | tr -d '\r\n[:space:]' || echo "") BASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || echo main) BASE_VERSION=$(git show origin/$BASE_BRANCH:VERSION 2>/dev/null | tr -d '\r\n[:space:]' || echo "") -QUEUE_JSON=$(bun run bin/gstack-next-version \ +QUEUE_JSON=$(bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump patch \ --current-version "$BASE_VERSION" 2>/dev/null || echo '{"offline":true}') diff --git a/review/SKILL.md.tmpl b/review/SKILL.md.tmpl index ae480da3d..7d6ae1e00 100644 --- a/review/SKILL.md.tmpl +++ b/review/SKILL.md.tmpl @@ -89,7 +89,7 @@ Check whether this PR's claimed VERSION still points at a free slot in the queue BRANCH_VERSION=$(git show HEAD:VERSION 2>/dev/null | tr -d '\r\n[:space:]' || echo "") BASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || echo main) BASE_VERSION=$(git show origin/$BASE_BRANCH:VERSION 2>/dev/null | tr -d '\r\n[:space:]' || echo "") -QUEUE_JSON=$(bun run bin/gstack-next-version \ +QUEUE_JSON=$(bun run ~/.claude/skills/gstack/bin/gstack-next-version \ --base "$BASE_BRANCH" \ --bump patch \ --current-version "$BASE_VERSION" 2>/dev/null || echo '{"offline":true}')