name: open-graphite-stacks description: Discovers and displays all open Graphite stacks authored by you across your GitHub repos. Shows a simple grouped view of every stack with PR numbers, titles, and status. Use when you want to see what stacks you have open.
Discover My Open Stacks
Install path: This skill expects to be installed at
~/.claude/skills/open-graphite-stacks/. All script paths below assume this location. If installed elsewhere, adjust paths accordingly.
Finds all open PRs authored by the current user, groups them into Graphite stacks, and displays a simple overview.
Step 1: Fetch Data
Run the fetch script which handles everything — fetching PRs, enriching with review threads, and grouping into stacks:
~/.claude/skills/open-graphite-stacks/scripts/fetch-stacks.sh
This outputs pre-grouped JSON:
{
"my-backend": {
"stacks": [
[
{ "number": 101, "title": "...", "isDraft": false, "reviewDecision": "APPROVED",
"totalThreads": 5, "resolvedThreads": 2 },
{ "number": 102, "title": "...", ... }
]
],
"standalone": [
{ "number": 115, "title": "...", ... }
]
}
}
Each stack array is ordered trunk-to-tip. reviewDecision is one of: APPROVED, CHANGES_REQUESTED, REVIEW_REQUIRED, or "".
If all repos have empty stacks and standalone arrays, report: No open PRs found. and stop.
Step 2: Format Output
Render the JSON into this format:
## My Open Stacks
### my-backend
Stack 1:
- [1] [DRAFT] #101 feat: add billing endpoint | 💬 2/5 | CHANGES_REQUESTED
- [2] #102 feat: add billing tests | 💬 0/3 | APPROVED
- [3] #103 feat: billing UI integration | 💬 1/1
Stack 2:
- [1] #110 fix: sync race condition | APPROVED
Standalone:
- #115 chore: bump dependencies | 💬 0/2
### my-frontend
Stack 1:
- [1] #50 feat: new settings page | 💬 3/4 | CHANGES_REQUESTED
- [2] #51 feat: settings validation
---
Summary: {total_prs} open PRs across {total_stacks} stacks and {standalone_count} standalone PRs
Rules:
- Mark draft PRs with
[DRAFT]before the PR number - Show review thread counts as
💬 N/Mwhere N = resolved threads and M = total threads — but ONLY when totalThreads > 0. Omit entirely when 0/0 - Show
reviewDecisiononly if non-empty - Use
|as delimiter between title, thread count, and review decision. Only include|segments that have content - Use markdown list syntax (
-) for each PR line - If a repo has no open PRs, omit it entirely
- Group standalone PRs under a "Standalone" heading separate from numbered stacks
- Keep it concise — no extra commentary, just the structured output