Skills Agentes

Gh Stack

Gestiona PRs apilados y parte el trabajo en ramas revisables con gh-stack: creación, visualización, edición, push, envío, sincronización, rebase, merge y checkout.

Oficial
Estrellas
142k

en todo el repo

Actividad
60

0–100, la ruta de este skill

Actualizado
hace 12 días

último commit aquí

Commits
2

últimos 90 días

Contexto
2.3k tok

83 tok en reposo

Paquete
4 archivos

29 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add vercel/next.js --skill gh-stack --agent claude-code

Se instala solo en este repositorio.

Qué hace

  • Gestiona PRs apilados con `gh-stack` y parte el trabajo en ramas revisables
  • Cubre creación, visualización, edición, push, envío, sincronización, rebase, merge y checkout de la pila
  • Explica el uso no interactivo, la colocación de ramas y el bucle de trabajo principal
  • Documenta los códigos de salida y las restricciones

Úsalo cuando

  • Crear, ver o mantener una pila de PRs dependientes
  • Se pide partir o aislar trabajo para revisarlo
  • El usuario menciona una pila, capas de ramas o PRs dependientes

No lo uses cuando

    Qué lo activa

    Di cualquiera de estas frases y el agente debería cargar este skill.

    • Parte este trabajo en PRs apilados
    • Sincroniza mi pila con main
    • Haz merge de la base de la pila

    SKILL.md

    En inglés

    gh-stack

    gh stack is a GitHub CLI extension for stacked branches and pull requests. A stack is an ordered chain of branches rooted on a trunk, where each branch has one PR based on the branch below it, so a reviewer sees only that layer's diff.

    gh stack prints a stack trunk-first, left to right:

    (main) <- auth <- api <- frontend
    

    Left is the bottom, right is the top. auth is based on main and merges first; frontend merges last. up moves toward the top, away from trunk; down moves toward it. Foundational work belongs at the bottom, code that depends on it above. For how to choose the layers, read references/stack-design.md.

    Setup

    gh extension install github/gh-stack
    git config rerere.enabled true         # remember conflict resolutions
    git config remote.pushDefault origin   # required if the repo has more than one remote
    

    Non-interactive use

    gh stack branches on whether stdout is a TTY. Piped, most commands error cleanly or print static text; under a PTY the same commands open a prompt or a full-screen TUI and block forever. Agent harnesses differ, so always pass the flags below instead of relying on that detection.

    Multiple remotes: never run push, submit, sync, rebase, or link without --remote <name> unless remote.pushDefault is configured. checkout and trunk have no --remote flag and require the config.

    Always run Never run bare Why
    gh stack view --json gh stack view opens a TUI under a PTY
    gh stack submit --auto gh stack submit prompts for a title per new PR
    gh stack merge <target> --yes gh pr merge gh pr merge cannot merge a stack
    gh stack init <branch>... gh stack init prompts for branch names
    gh stack add <branch> gh stack add prompts for a name, and fails even when piped
    gh stack checkout <target> gh stack checkout opens a selection menu
    gh stack up / down / top / bottom gh stack switch switch is menu-only
    gh stack modify TUI-only, no non-interactive path
    • view --short is safe in both modes, but it is formatted for humans. Use --json to parse.
    • checkout <pr> when a different local stack already covers those branches cannot be forced. Run gh stack unstack --local first (this keeps the stack on GitHub), then retry.

    Branch placement

    • Starting multi-part work: create the stack before writing files. Do not implement every concern on trunk and split it later. Put one dependent concern in each layer, bottom to top.
    • Editing an existing stack: check out the layer that owns the change before editing. Never commit a lower layer's concern on the current top branch. Run gh stack view --json; if ownership is unclear, inspect git log --all -- <path>. Then check out the owner, edit, commit, rebase upstack, and return to top.
    gh stack down                   # or: gh stack checkout api
    git add ... && git commit -m "Add get-user endpoint"
    gh stack rebase --upstack       # replay every branch above onto the change
    gh stack top                    # return to where you were
    gh stack push
    

    Core loop

    gh stack init auth              # create the stack and check out its branch
    git add ... && git commit -m "Add auth middleware"
    gh stack add api                # next layer, branched from the current one
    git add ... && git commit -m "Add API routes"
    gh stack submit --auto          # push every branch and open draft PRs
    gh stack view --json            # confirm
    

    Add --open to submit to create PRs ready for review instead of drafts. Branch names are verbatim — gh stack add refactor/foo creates refactor/foo.

    Staying in sync

    gh stack sync                   # fetch, reconcile with GitHub, rebase, push, refresh PR state
    gh stack sync --prune           # also delete local branches for merged PRs
    

    Pruning never happens without --prune when non-interactive. If the local and remote stacks have diverged, sync prints both chains, makes no changes, and exits 0 with Sync aborted — see references/troubleshooting.md.

    Merging

    Scope the merge with an argument:

    gh stack merge 42 --yes          # PR #42 plus every unmerged PR below it
    gh stack merge 7 --yes           # every unmerged PR in stack #7
    gh stack merge 42 --yes --squash # or --merge, --rebase, --merge-method <method>
    

    Pass a PR number to merge that PR and every unmerged PR below it, or a stack number to merge every unmerged PR in that stack. The operation is all-or-nothing: if any PR in that set cannot merge, none do.

    Without a method flag the last-used method is reused. If the base branch uses a merge queue, the stack is queued instead and the queue picks the method, ignoring any flag you passed with a warning; queued PRs may land in separate groups.

    Reading state

    gh stack view --json writes JSON to stdout. Status messages go to stderr — do not parse them, branch on exit codes instead.

    trunk           string
    currentBranch   string
    branches[]      name, head, base, isCurrent, isMerged, isQueued, needsRebase
    branches[].pr   number, url, state ("OPEN" | "MERGED" | "QUEUED"); absent when no PR exists
    

    base is the saved SHA of the parent branch that this branch was last known to contain. It may be older than the parent's current tip. needsRebase is true when the current parent tip is no longer an ancestor of the branch.

    Exit codes

    Code Meaning Recovery
    0 Success
    1 Generic error Read stderr
    2 Not in a stack gh stack init, or gh stack checkout <target>
    3 Rebase conflict Follow the Exit 3 recovery below
    4 GitHub API failure Check gh auth status, retry
    5 Invalid arguments Fix the invocation; see <command> --help
    6 Disambiguation required Branch is in several stacks; check out a non-shared branch
    7 Rebase already in progress gh stack rebase --continue or --abort
    8 Stack file locked Another gh stack process is writing; retry after ~5s
    9 Stacked PRs unavailable Not enabled on the repository; tell the user
    10 Modify recovery required gh stack modify --abort

    Exit 3 recovery:

    • After gh stack rebase: resolve the files, run git add, then gh stack rebase --continue; use gh stack rebase --abort to restore the stack.
    • After gh stack sync: the stack has already been restored. Run gh stack rebase to recreate the conflict, then resolve and continue as above.

    Constraints

    • Stacks are strictly linear: one parent, at most one child. Use separate stacks for parallel work.
    • There is no non-interactive reorder or removal. Errors may suggest gh stack modify, but it is TUI-only — restructure with unstack then init instead.
    • PR titles and bodies are auto-generated. Use gh pr edit afterwards to change them.
    • checkout <branch-name> resolves against local stacks only. Use a stack or PR number to pull a stack down from GitHub.

    More detail

    gh stack <command> --help is authoritative for flags and arguments. Note that gh stack help <command> does not work — it prints the top-level help.

    Open the reference whose trigger matches the task; no need to preload all three.

    • references/stack-design.md — read before creating a stack, when deciding how many layers to use, what belongs in each one, or whether work belongs in a new stack.
    • references/commands.md — read when a command fails unexpectedly or you need its preconditions, side effects, atomicity, or ordering guarantees.
    • references/troubleshooting.md — read on a rebase conflict, after a squash-merge, on local and remote divergence, when restructuring a stack, or when driving stacks from another tool.

    Reproducido de vercel/next.js bajo licencia MIT. Leer esta página en markdown.

    Archivos

    4 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

    Antes de instalar

    Necesita la herramienta `gh-stack`.

    Necesita en el PATH:ghgit

    Detalles

    Creador
    vercel
    Licencia
    MIT
    Recursos incluidos
    referencias
    Repositorio
    vercel/next.js
    Código fuente
    Ver SKILL.md

    Etiquetas

    Más de vercel/next.js

    Este repo incluye 22 skills. Si instalas uno, normalmente ya tienes los demás.

    Activa Cache Components en una app de Next.js y resuelve las rutas bloqueantes que aparecen. Úsalo para adoptar o migrar, activar el flag cacheComponents o decidir entre excluir rutas y arreglarlas.

    Costo de contexto al activarse
    8.1k tok
    Tamaño del paquete
    3 archivos
    Última actualización
    hace 3 días
    Oficialherramientas desarrollo

    Lleva una ruta de Next.js a navegación instantánea bajo Cache Components o PPR mediante un bucle agéntico: codifica el objetivo como un e2e instant() en rojo y lo trabaja hasta verde, ruta a ruta.

    Costo de contexto al activarse
    6.3k tok
    Tamaño del paquete
    6 archivos
    Última actualización
    hace 5 días
    Oficialherramientas desarrollo

    Activa Partial Prefetching en una app de Next.js y resuelve las insights que surgen: audita los Link con prefetch, activa partialPrefetching y opta por rutas con prefetch = 'partial'.

    Costo de contexto al activarse
    6k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 días
    Oficialherramientas desarrollo

    Verifica el comportamiento en runtime de Next.js tras editar código de la aplicación. Combina /_next/mcp, la visión de Next.js, con agent-browser, la del navegador. Requiere un next dev en marcha.

    Costo de contexto al activarse
    2k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 5 días
    Oficialtesting qa

    Compara el rendimiento de cambios de React o Next.js en VMs de Vercel Sandbox con estadística A/B pareada: rps, latencia, p95, TTFB, RSS y bytes de documento y Flight.

    Costo de contexto al activarse
    4.1k tok
    Tamaño del paquete
    13 archivos
    Última actualización
    hace 19 días
    Oficialtesting qa

    Escribe o audita una página de error de tipo insight para el overlay de desarrollo de Next.js: estructura, alineación del título, tarjetas FixCard, fragmentos de código y verificación de terminología.

    Costo de contexto al activarse
    5.5k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialredaccion contenido

    Skills relacionados

    Cómo crear y mantener skills de agente en .agents/skills/. Úsalo al crear un SKILL.md, escribir descripciones, elegir campos de frontmatter o decidir qué va en un skill y qué en AGENTS.md.

    Costo de contexto al activarse
    1k tok
    Tamaño del paquete
    1 archivo
    Última actualización
    hace 3 meses
    Oficialherramientas desarrollo

    Lleva un pull request fusionado de Next.js desde canary a una rama de release anterior como next-16-2: localiza el commit, crea la rama, hace cherry-pick, valida y abre el PR.

    Costo de contexto al activarse
    832 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo

    Crea ramas, commits, pushes y pull requests de GitHub para Next.js. Cubre la plantilla de PR, el formato de --body, las ramas codex/ y las directivas de git de la app Codex.

    Costo de contexto al activarse
    944 tok
    Tamaño del paquete
    1 archivo
    Última actualización
    el mes pasado
    Oficialherramientas desarrollo