> ## Documentation Index
> Fetch the complete documentation index at: https://ade-ac1c6011-dependabot-github-actions-actions-cache-6.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Guide: stacked PRs

> Land a stack of dependent PRs in order using child lanes — small, ordered diffs that build on each other.

Use stacked PRs when one feature is too large for a single review but each slice depends on the previous one. Each lane in the stack becomes its own PR, targeting the lane below it instead of `main` — so reviewers see small, ordered diffs.

ADE builds the stack out of **child lanes**: a lane branched off another lane instead of `main`. The child-lane chain *is* the PR stack.

<Frame caption="A stacked PR targets its parent lane's branch, not main.">
  <img src="https://mintcdn.com/ade-ac1c6011-dependabot-github-actions-actions-cache-6/mZiHD0-x8whDsXL3/media/features/pull-requests/pr-sources.webp?fit=max&auto=format&n=mZiHD0-x8whDsXL3&q=85&s=747211cd387a0685ae7aa5c1be842fd6" alt="A stacked PR targeting its parent lane's branch" width="2592" height="1410" data-path="media/features/pull-requests/pr-sources.webp" />
</Frame>

## 1. Create the base lane

Create a lane from `main` for the first slice of work and commit the foundation there.

## 2. Stack child lanes

Select the base lane and create a **child lane** for the next slice — it branches off the base lane, not `main`. Repeat only as far as the dependency is real.

```text theme={null}
main
  feature-auth-models      (base lane, off main)
    feature-auth-ui        (child of the base lane)
      feature-auth-tests   (child of feature-auth-ui)
```

<Frame caption="The worktree graph shows stack order, PR links, and merge risk at a glance.">
  <img src="https://mintcdn.com/ade-ac1c6011-dependabot-github-actions-actions-cache-6/mZiHD0-x8whDsXL3/media/features/worktrees/worktree-graph.webp?fit=max&auto=format&n=mZiHD0-x8whDsXL3&q=85&s=1d2047fcff17bf8d94ddbd9d0796111f" alt="The worktree graph showing a child-lane stack" width="1280" height="696" data-path="media/features/worktrees/worktree-graph.webp" />
</Frame>

## 3. Open PRs in order

Open PRs from the bottom of the stack upward. Each PR targets the branch of the lane it was stacked on.

* The base lane targets `main`.
* The first child lane targets the base lane's branch.
* The next child lane targets the first child's branch.

ADE keeps this relationship visible in Lanes, Graph, and PRs.

## 4. Review bottom-up

Review the base PR first. Each child PR is easier to understand — and to merge — once its parent is approved.

## 5. Land the stack

<Steps>
  <Step title="Merge the base PR">
    Land the bottom PR into `main`.
  </Step>

  <Step title="Retarget the next child">
    Rebase or retarget the next PR so it now builds on `main`.
  </Step>

  <Step title="Repeat up the stack">
    Continue child by child until every slice is merged.
  </Step>
</Steps>

## Tips

* Keep each PR small enough to review on its own.
* Avoid deep stacks unless the dependency between slices is real.
* Use the worktree graph to see the chain and its merge order.
* Re-run tests after rebasing a child lane.
* If a child lane stops depending on its parent, split it into a sibling lane off `main`.

<CardGroup cols={2}>
  <Card title="Stack lanes" icon="layer-group" href="/lanes/stacks">
    The lane model behind a stack — child lanes in detail.
  </Card>

  <Card title="Pull requests" icon="code-pull-request" href="/tools/pull-requests">
    Create, review, and merge PRs from ADE.
  </Card>
</CardGroup>
