{"id":"5b1dda5d-f34c-41eb-9888-450c10bee355","shortId":"EqmdnR","kind":"skill","title":"landing-report","tagline":"Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots\nare currently claimed by open PRs, which sibling Conductor workspaces have\nWIP work likely to ship soon, and what slot /ship would pick next. No\nmutations — just a snapshot. Use when asked to \"landing r","description":"## Preamble\n\n```bash\neval \"$(~/.vibestack/bin/vibe-slug 2>/dev/null)\" 2>/dev/null || SLUG=\"unknown\"\n_LEARN_FILE=\"${VIBESTACK_HOME:-$HOME/.vibestack}/projects/${SLUG:-unknown}/learnings.jsonl\"\nif [ -f \"$_LEARN_FILE\" ]; then\n  _LEARN_COUNT=$(wc -l < \"$_LEARN_FILE\" 2>/dev/null | tr -d ' ')\n  echo \"LEARNINGS: $_LEARN_COUNT entries loaded\"\n  if [ \"$_LEARN_COUNT\" -gt 5 ] 2>/dev/null; then\n    ~/.vibestack/bin/vibe-learnings-search --limit 5 2>/dev/null || true\n  fi\nelse\n  echo \"LEARNINGS: none yet\"\nfi\n```\n\n## Why this skill exists\n\nWhen you're running 5-10 parallel Conductor workspaces, it helps to see — at a\nglance — which version numbers are claimed, by whom, and what slot your next\n`/ship` would land in. This skill is a read-only call into the same\n`# bin/vibe-next-version (not yet implemented)` utility `/ship` uses, but with nothing mutating.\nThink of it as `gh pr list` for VERSION numbers.\n\n---\n\n## Step 1: Detect platform and base branch\n\nSame detection as other vibestack skills.\n\n```bash\nBASE_BRANCH=$(gh pr view --json baseRefName -q .baseRefName 2>/dev/null || \\\n              gh repo view --json defaultBranchRef -q .defaultBranchRef.name 2>/dev/null || \\\n              echo main)\necho \"Base branch: $BASE_BRANCH\"\n```\n\n---\n\n## Step 2: Read current state\n\n```bash\nCURRENT_VERSION=$(cat VERSION 2>/dev/null | tr -d '[:space:]' || echo \"0.0.0.0\")\ngit fetch origin \"$BASE_BRANCH\" --quiet 2>/dev/null || true\nBASE_VERSION=$(git show \"origin/$BASE_BRANCH:VERSION\" 2>/dev/null | tr -d '[:space:]' || echo \"$CURRENT_VERSION\")\necho \"origin/$BASE_BRANCH VERSION: $BASE_VERSION\"\necho \"branch HEAD VERSION: $CURRENT_VERSION\"\n```\n\n---\n\n## Step 3: Query the queue\n\nCall the util three times — once for each bump level — so the user sees what\nthey'd claim for micro/patch/minor/major. Cheap (same gh call cached by bun).\n\n```bash\nfor LEVEL in micro patch minor major; do\n  # bin/vibe-next-version (not yet implemented) \\\n    --base \"$BASE_BRANCH\" \\\n    --bump \"$LEVEL\" \\\n    --current-version \"$BASE_VERSION\" \\\n    > \"/tmp/landing-$LEVEL.json\" 2>/dev/null || echo '{\"offline\":true}' > \"/tmp/landing-$LEVEL.json\"\ndone\n```\n\n---\n\n## Step 4: Render the dashboard\n\nBuild a single table output. Use the `patch`-level JSON as canonical for\nqueue + siblings (they're identical across bump levels; only `.version`\ndiffers).\n\nUse `jq` to extract:\n- `.host` — github | gitlab | unknown\n- `.offline` — did the query fail?\n- `.claimed` — array of {pr, branch, version, url}\n- `.siblings` — all sibling worktrees found\n- `.active_siblings` — subset that's likely about to ship\n\nRender in this exact format:\n\n```\n╔══════════════════════════════════════════════════════════════════╗\n║                   VIBESTACK LANDING REPORT                      ║\n╠══════════════════════════════════════════════════════════════════╣\n║ Repo:    <owner/repo>                                            ║\n║ Base:    <base> @ v<base-version>                                ║\n║ Host:    <github|gitlab|unknown>                                 ║\n║ Status:  <ONLINE|OFFLINE: queue-awareness unavailable>           ║\n╚══════════════════════════════════════════════════════════════════╝\n\nOpen PRs claiming versions on <base>:\n  #1152  alpha-branch         → v1.7.0.0\n  #1153  beta-branch          → v1.7.0.0  ⚠ collision with #1152\n  #1151  gamma-branch         → v1.6.5.0\n\nSibling Conductor worktrees (<workspace_root>):\n  path                        branch                 VERSION      last commit   PR\n  ──────────────────────────────────────────────────────────────────────────────────\n  ../tokyo-v2                 feat/dashboard         v1.7.1.0    3h ago         none  ★ active\n  ../melbourne                feat/review            v1.6.0.0    12d ago        none\n  ../osaka                    feat/payments          v1.8.0.0    5h ago         #1155\n\n★ active = has VERSION ahead of base AND last commit < 24h AND no open PR.\n  These are the ones likely to ship soon.\n\nIf you ran /ship right now, you'd claim:\n  micro bump:  v1.6.3.1   (queue-advance: none)\n  patch bump:  v1.7.1.0   (bumped past claimed 1.7.0.0)\n  minor bump:  v1.8.0.0   (bumped past claimed 1.7.0.0)\n  major bump:  v2.0.0.0   (no major collisions)\n```\n\nFor offline / unknown-host output, print a shorter block:\n\n```\n╔══════════════════════════════════════════════════════════════════╗\n║                   VIBESTACK LANDING REPORT                      ║\n╠══════════════════════════════════════════════════════════════════╣\n║ Status:  OFFLINE — queue-awareness unavailable                   ║\n║ Reason:  <offline reason from warnings>                          ║\n╚══════════════════════════════════════════════════════════════════╝\n\nFallback: local VERSION bumps still work, but collisions cannot be detected.\n```\n\n---\n\n## Step 5: Suggest next action\n\nAfter rendering the table, suggest ONE of:\n\n1. **If there are collisions in the queue** (two open PRs claim the same version):\n   \"⚠ Two open PRs collide on v<X>. Whoever merges second will either overwrite\n   the first's CHANGELOG entry or land a duplicate. Consider asking one author\n   to rerun /ship to pick up the next free slot.\"\n\n2. **If an active sibling outranks the user's branch version:**\n   \"Sibling worktree <path> has v<X> committed <N>h ago and hasn't PR'd yet.\n   If that work ships first, your branch will need to rebump at land time.\"\n\n3. **If everything looks clean:**\n   \"Queue is clean. Next /ship will claim a slot without conflict.\"\n\n---\n\n## Plan Mode\n\nPLAN MODE EXCEPTION — ALWAYS RUN. This skill is entirely read-only: no file\nwrites, no git mutations, no network state changes. Safe to run in plan mode.","tags":["landing","report","vibestack","timurgaleev","agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering"],"capabilities":["skill","source-timurgaleev","skill-landing-report","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-cursor-ide","topic-developer-tools","topic-kiro","topic-mcp","topic-prompt-engineering","topic-slash-commands"],"categories":["vibestack"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/timurgaleev/vibestack/landing-report","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add timurgaleev/vibestack","source_repo":"https://github.com/timurgaleev/vibestack","install_from":"skills.sh"}},"qualityScore":"0.457","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 15 github stars · SKILL.md body (5,620 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:06:21.887Z","embedding":null,"createdAt":"2026-05-18T19:06:21.887Z","updatedAt":"2026-05-18T19:06:21.887Z","lastSeenAt":"2026-05-18T19:06:21.887Z","tsv":"'-10':123 '/.vibestack/bin/vibe-learnings-search':101 '/.vibestack/bin/vibe-slug':56 '/dev/null':58,60,84,99,105,206,215,234,247,258,336 '/learnings.jsonl':71 '/melbourne':468 '/osaka':474 '/projects':68 '/ship':38,146,166,505,623,678 '/tmp/landing-':333,340 '/tokyo-v2':461 '0.0.0.0':239 '1':183,581 '1.7.0.0':524,531 '1151':447 '1152':434,446 '1153':439 '1155':479 '12d':471 '2':57,59,83,98,104,205,214,224,233,246,257,335,631 '24h':489 '3':279,669 '3h':464 '4':344 '5':97,103,122,570 '5h':477 'across':366 'action':573 'activ':397,467,480,634 'advanc':516 'ago':465,472,478,648 'ahead':483 'alpha':436 'alpha-branch':435 'alway':690 'array':386 'ask':49,618 'author':620 'awar':12,427,555 'base':187,196,219,221,243,249,254,267,270,323,324,331,416,485 'baserefnam':202,204 'bash':54,195,228,310 'beta':441 'beta-branch':440 'bin/vibe-next-version':161,319 'block':547 'branch':188,197,220,222,244,255,268,273,325,389,437,442,450,456,640,661 'build':348 'bump':291,326,367,512,519,521,526,528,533,561 'bun':309 'cach':307 'call':157,283,306 'cannot':566 'canon':359 'cat':231 'chang':708 'changelog':611 'cheap':303 'claim':20,138,300,385,431,510,523,530,592,680 'clean':673,676 'collid':599 'collis':444,537,565,585 'commit':459,488,646 'conductor':26,125,453 'conflict':684 'consid':617 'count':78,90,95 'current':19,226,229,263,276,329 'current-vers':328 'd':86,236,260,299,509,653 'dashboard':8,347 'defaultbranchref':211 'defaultbranchref.name':213 'detect':184,190,568 'differ':371 'done':342 'duplic':616 'echo':87,109,216,218,238,262,265,272,337 'either':606 'els':108 'entir':695 'entri':91,612 'eval':55 'everyth':671 'exact':409 'except':689 'exist':117 'extract':375 'f':73 'fail':384 'fallback':558 'feat/dashboard':462 'feat/payments':475 'feat/review':469 'fetch':241 'fi':107,113 'file':64,75,82,700 'first':609,659 'format':410 'found':396 'free':629 'gamma':449 'gamma-branch':448 'gh':176,198,207,305 'git':240,251,703 'github':377,419 'gitlab':378,420 'glanc':133 'gt':96 'h':647 'hasn':650 'head':274 'help':128 'home':66 'home/.vibestack':67 'host':376,418,542 'ident':365 'implement':164,322 'jq':373 'json':201,210,357 'l':80 'land':2,51,148,412,549,614,667 'landing-report':1 'last':458,487 'learn':63,74,77,81,88,89,94,110 'level':292,312,327,356,368 'level.json':334,341 'like':31,402,498 'limit':102 'list':178 'load':92 'local':559 'look':672 'main':217 'major':317,532,536 'merg':603 'micro':314,511 'micro/patch/minor/major':302 'minor':316,525 'mode':686,688,714 'mutat':43,171,704 'need':663 'network':706 'next':41,145,572,628,677 'none':111,466,473,517 'noth':170 'number':136,181 'offlin':338,380,424,539,552 'one':497,579,619 'onlin':423 'open':22,429,492,590,597 'origin':242,253,266 'output':352,543 'outrank':636 'overwrit':607 'owner/repo':415 'parallel':124 'past':522,529 'patch':315,355,518 'path':455 'pick':40,625 'plan':685,687,713 'platform':185 'pr':177,199,388,460,493,652 'preambl':53 'print':544 'prs':23,430,591,598 'q':203,212 'queri':280,383 'queue':7,282,361,426,515,554,588,674 'queue-adv':514 'queue-awar':425,553 'quiet':245 'r':52 'ran':504 're':120,364 'read':5,155,225,697 'read-on':4,154,696 'reason':557 'rebump':665 'render':345,406,575 'repo':208,414 'report':3,413,550 'rerun':622 'right':506 'run':121,691,711 'safe':709 'second':604 'see':130,296 'ship':13,33,405,500,658 'shorter':546 'show':14,252 'sibl':25,362,392,394,398,452,635,642 'singl':350 'skill':116,151,194,693 'skill-landing-report' 'slot':17,37,143,630,682 'slug':61,69 'snapshot':46 'soon':34,501 'source-timurgaleev' 'space':237,261 'state':227,707 'status':422,551 'step':182,223,278,343,569 'still':562 'subset':399 'suggest':571,578 'tabl':351,577 'think':172 'three':286 'time':287,668 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-cursor-ide' 'topic-developer-tools' 'topic-kiro' 'topic-mcp' 'topic-prompt-engineering' 'topic-slash-commands' 'tr':85,235,259 'true':106,248,339 'two':589,596 'unavail':428,556 'unknown':62,70,379,421,541 'unknown-host':540 'url':391 'use':47,167,353,372 'user':295,638 'util':165,285 'v':417,601,645 'v1.6.0.0':470 'v1.6.3.1':513 'v1.6.5.0':451 'v1.7.0.0':438,443 'v1.7.1.0':463,520 'v1.8.0.0':476,527 'v2.0.0.0':534 'version':16,135,180,230,232,250,256,264,269,271,275,277,330,332,370,390,432,457,482,560,595,641 'vibestack':65,193,411,548 'view':200,209 'wc':79 'whoever':602 'wip':29 'without':683 'work':30,563,657 'workspac':11,27,126 'workspace-awar':10 'worktre':395,454,643 'would':39,147 'write':701 'yet':112,163,321,654","prices":[{"id":"accc069e-315c-47ed-91ee-d8e765688710","listingId":"5b1dda5d-f34c-41eb-9888-450c10bee355","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"timurgaleev","category":"vibestack","install_from":"skills.sh"},"createdAt":"2026-05-18T19:06:21.887Z"}],"sources":[{"listingId":"5b1dda5d-f34c-41eb-9888-450c10bee355","source":"github","sourceId":"timurgaleev/vibestack/landing-report","sourceUrl":"https://github.com/timurgaleev/vibestack/tree/main/skills/landing-report","isPrimary":false,"firstSeenAt":"2026-05-18T19:06:21.887Z","lastSeenAt":"2026-05-18T19:06:21.887Z"}],"details":{"listingId":"5b1dda5d-f34c-41eb-9888-450c10bee355","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"timurgaleev","slug":"landing-report","github":{"repo":"timurgaleev/vibestack","stars":15,"topics":["agent-skills","ai-agents","claude-code","cursor-ide","developer-tools","kiro","mcp","prompt-engineering","slash-commands"],"license":"mit","html_url":"https://github.com/timurgaleev/vibestack","pushed_at":"2026-05-18T18:19:05Z","description":"vibestack is a portable skill pack for AI coding agents. Slash commands like /office-hours, /ship, /investigate, /tdd, /review install once and work across every agent that supports the Agent Skills open standard — Claude Code, Cursor, Kiro, and a growing list of others. ","skill_md_sha":"bec4a2ca0b7c029af93de006d4acdea0bb607321","skill_md_path":"skills/landing-report/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/timurgaleev/vibestack/tree/main/skills/landing-report"},"layout":"multi","source":"github","category":"vibestack","frontmatter":{"name":"landing-report","description":"Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots\nare currently claimed by open PRs, which sibling Conductor workspaces have\nWIP work likely to ship soon, and what slot /ship would pick next. No\nmutations — just a snapshot. Use when asked to \"landing report\", \"what's in\nthe queue\", \"show me open PRs\", or \"which version do I claim next\"."},"skills_sh_url":"https://skills.sh/timurgaleev/vibestack/landing-report"},"updatedAt":"2026-05-18T19:06:21.887Z"}}