landing-report
Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing r
What it does
Preamble
eval "$(~/.vibestack/bin/vibe-slug 2>/dev/null)" 2>/dev/null || SLUG="unknown"
_LEARN_FILE="${VIBESTACK_HOME:-$HOME/.vibestack}/projects/${SLUG:-unknown}/learnings.jsonl"
if [ -f "$_LEARN_FILE" ]; then
_LEARN_COUNT=$(wc -l < "$_LEARN_FILE" 2>/dev/null | tr -d ' ')
echo "LEARNINGS: $_LEARN_COUNT entries loaded"
if [ "$_LEARN_COUNT" -gt 5 ] 2>/dev/null; then
~/.vibestack/bin/vibe-learnings-search --limit 5 2>/dev/null || true
fi
else
echo "LEARNINGS: none yet"
fi
Why this skill exists
When you're running 5-10 parallel Conductor workspaces, it helps to see — at a
glance — which version numbers are claimed, by whom, and what slot your next
/ship would land in. This skill is a read-only call into the same
# bin/vibe-next-version (not yet implemented) utility /ship uses, but with nothing mutating.
Think of it as gh pr list for VERSION numbers.
Step 1: Detect platform and base branch
Same detection as other vibestack skills.
BASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || \
gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null || \
echo main)
echo "Base branch: $BASE_BRANCH"
Step 2: Read current state
CURRENT_VERSION=$(cat VERSION 2>/dev/null | tr -d '[:space:]' || echo "0.0.0.0")
git fetch origin "$BASE_BRANCH" --quiet 2>/dev/null || true
BASE_VERSION=$(git show "origin/$BASE_BRANCH:VERSION" 2>/dev/null | tr -d '[:space:]' || echo "$CURRENT_VERSION")
echo "origin/$BASE_BRANCH VERSION: $BASE_VERSION"
echo "branch HEAD VERSION: $CURRENT_VERSION"
Step 3: Query the queue
Call the util three times — once for each bump level — so the user sees what they'd claim for micro/patch/minor/major. Cheap (same gh call cached by bun).
for LEVEL in micro patch minor major; do
# bin/vibe-next-version (not yet implemented) \
--base "$BASE_BRANCH" \
--bump "$LEVEL" \
--current-version "$BASE_VERSION" \
> "/tmp/landing-$LEVEL.json" 2>/dev/null || echo '{"offline":true}' > "/tmp/landing-$LEVEL.json"
done
Step 4: Render the dashboard
Build a single table output. Use the patch-level JSON as canonical for
queue + siblings (they're identical across bump levels; only .version
differs).
Use jq to extract:
.host— github | gitlab | unknown.offline— did the query fail?.claimed— array of {pr, branch, version, url}.siblings— all sibling worktrees found.active_siblings— subset that's likely about to ship
Render in this exact format:
╔══════════════════════════════════════════════════════════════════╗
║ VIBESTACK LANDING REPORT ║
╠══════════════════════════════════════════════════════════════════╣
║ Repo: <owner/repo> ║
║ Base: <base> @ v<base-version> ║
║ Host: <github|gitlab|unknown> ║
║ Status: <ONLINE|OFFLINE: queue-awareness unavailable> ║
╚══════════════════════════════════════════════════════════════════╝
Open PRs claiming versions on <base>:
#1152 alpha-branch → v1.7.0.0
#1153 beta-branch → v1.7.0.0 ⚠ collision with #1152
#1151 gamma-branch → v1.6.5.0
Sibling Conductor worktrees (<workspace_root>):
path branch VERSION last commit PR
──────────────────────────────────────────────────────────────────────────────────
../tokyo-v2 feat/dashboard v1.7.1.0 3h ago none ★ active
../melbourne feat/review v1.6.0.0 12d ago none
../osaka feat/payments v1.8.0.0 5h ago #1155
★ active = has VERSION ahead of base AND last commit < 24h AND no open PR.
These are the ones likely to ship soon.
If you ran /ship right now, you'd claim:
micro bump: v1.6.3.1 (queue-advance: none)
patch bump: v1.7.1.0 (bumped past claimed 1.7.0.0)
minor bump: v1.8.0.0 (bumped past claimed 1.7.0.0)
major bump: v2.0.0.0 (no major collisions)
For offline / unknown-host output, print a shorter block:
╔══════════════════════════════════════════════════════════════════╗
║ VIBESTACK LANDING REPORT ║
╠══════════════════════════════════════════════════════════════════╣
║ Status: OFFLINE — queue-awareness unavailable ║
║ Reason: <offline reason from warnings> ║
╚══════════════════════════════════════════════════════════════════╝
Fallback: local VERSION bumps still work, but collisions cannot be detected.
Step 5: Suggest next action
After rendering the table, suggest ONE of:
-
If there are collisions in the queue (two open PRs claim the same version): "⚠ Two open PRs collide on v<X>. Whoever merges second will either overwrite the first's CHANGELOG entry or land a duplicate. Consider asking one author to rerun /ship to pick up the next free slot."
-
If an active sibling outranks the user's branch version: "Sibling worktree <path> has v<X> committed <N>h ago and hasn't PR'd yet. If that work ships first, your branch will need to rebump at land time."
-
If everything looks clean: "Queue is clean. Next /ship will claim a slot without conflict."
Plan Mode
PLAN MODE EXCEPTION — ALWAYS RUN. This skill is entirely read-only: no file writes, no git mutations, no network state changes. Safe to run in plan mode.
Capabilities
Install
Quality
deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (5,620 chars)