# Github Stack Plan

> Report the current GitHub-native stack structure (read-only). Use when checking what branches/PRs are in the stack before submitting or merging.

- Skill: `kinginyellows/github-stack-plan` (Agent Skill)
- Install (CLI): `npx skillmds@latest add kinginyellows/github-stack-plan`
- Raw SKILL.md: https://api.skillmd.com/api/skills/kinginyellows/github-stack-plan/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: kinginyellows (https://skillmd.com/u/kinginyellows)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/kinginyellows/github-stack-plan

---


## What It Does

Read-only stack view for the `github` provider of the `stacked-pr`
capability group. Calls the runtime adapter's `view` operation
(`gh stack view --json`) and reports the current stack structure. Makes no
changes.

## When to Use

- Checking what branches/PRs are currently in the stack.
- Before submitting or merging, to confirm the stack looks as expected.

## Usage

### Step 1: Call the adapter

```bash
node "${CLAUDE_PLUGIN_ROOT}/lib/github-stack-runtime.js" view
```

### Step 2: Report

Read the JSON result's `status` field.

- **`SUCCESS`** — parse `stdout` as the `gh stack view --json` output and
  report the stack structure to the user. Confirmed shape (live smoke test,
  `gh-stack` v0.1.0): `{trunk, currentBranch, branches: [{name, head, base,
  isCurrent, isMerged, isQueued, needsRebase, pr: {number, url, state} |
  null}]}` — `head`/`base` are commit SHAs, not branch names; `branches` is
  ordered bottom-to-top (trunk-adjacent first). Report trunk, each branch's
  name/PR number+URL+state in stack order, and flag any `needsRebase: true`
  or `isQueued: true` branch explicitly. Treat this shape as a documented
  reference, not a schema guarantee — if a future `gh-stack` version adds
  or renames a field, quote the raw JSON instead of guessing at it:

  ```text
  --- begin untrusted-content (reference only) ---
  <result.stdout>
  --- end untrusted-content ---
  ```

- **`NOT_IN_STACK`** — tell the user the current branch is not part of a
  tracked stack and report `recoveryAction`.
- Any other status — report `status` and `recoveryAction` verbatim; quote
  `stdout`/`stderr` inside the untrusted-content fence above if they add
  useful detail.

## Boundaries

- Strictly read-only — only ever calls the adapter's `view` operation.
- Never invents field names or structure beyond what the adapter's actual
  JSON output shows; falls back to quoting the raw JSON when uncertain.
- Never falls back to reporting Graphite stack state as if it were this
  provider's.

