diff --git a/merge-queue/administration/metrics.md b/merge-queue/administration/metrics.md
index bd462007..94611ed5 100644
--- a/merge-queue/administration/metrics.md
+++ b/merge-queue/administration/metrics.md
@@ -85,7 +85,7 @@ Conclusion counts are an important signal to potential bottlenecks or underlying
 
 Conclusions are tagged with a reason to give further insights into how merges pass or fail in the queue. You can show or hide conclusions of a particular reason by using the **+ Add** button.
 
-<table><thead><tr><th width="167">Category</th><th width="248">Reason</th><th>Description</th></tr></thead><tbody><tr><td>✅ Pass</td><td>Merged by Trunk</td><td>Passed all tests in Merge Queue and merged by Trunk</td></tr><tr><td>✅ Pass</td><td>Merged manually</td><td>User manually merged the PR in Git</td></tr><tr><td>❌ Failure</td><td>Test run timeout</td><td>User-defined timeout for tests exceeded</td></tr><tr><td>❌ Failure</td><td>Failed Tests</td><td>Required test failed while testing the PR in the merge queue</td></tr><tr><td>❌ Failure</td><td>Merge conflict</td><td>A (git) merge conflict encountered</td></tr><tr><td>❌ Failure</td><td>Config parsing failure</td><td>Malformed <code>trunk.yaml</code> that couldn't be parsed</td></tr><tr><td>❌ Failure</td><td>Config bad version</td><td>Invalid version field in <code>trunk.yaml</code></td></tr><tr><td>❌ Failure</td><td>Config bad required statuses</td><td>Failed to parse required statuses in <code>trunk.yaml</code></td></tr><tr><td>❌ Failure</td><td>No required statuses</td><td>No source for required tests was found in <code>trunk.yaml</code> or branch protection settings</td></tr><tr><td>❌ Failure</td><td>GitHub API Failed</td><td>GitHub returned an error to us that could not be resolved while processing the PR</td></tr><tr><td>❌ Failure</td><td>PR updated at merge time</td><td>PR updated as Trunk was attempting to merge it</td></tr><tr><td>🚫 Cancel</td><td>Canceled by user</td><td>PR explicitly canceled by user</td></tr><tr><td>🚫 Cancel</td><td>PR closed</td><td>PR closed (not merged)</td></tr><tr><td>🚫 Cancel</td><td>PR pushed to</td><td>New commits pushed to the PR branch while in the merge queue</td></tr><tr><td>🚫 Cancel</td><td>PR draft</td><td>PR was converted to a draft, which cannot be merged</td></tr><tr><td>🚫 Cancel</td><td>PR base branch changed</td><td>Base branch of PR in the merge queue changed</td></tr><tr><td>🚫 Cancel</td><td>Admin requested</td><td>Trunk employee canceled PR during a support session (extreme cases)</td></tr><tr><td>🚫 Cancel</td><td>A PR in the stack had its base branch changed</td><td>A member of the PR stack had its base branch changed while in the queue (stacked PRs only)</td></tr><tr><td>🚫 Cancel</td><td>A PR in a PR stack was closed</td><td>A member of the PR stack was closed while in the queue (stacked PRs only)</td></tr><tr><td>🚫 Cancel</td><td>PR was merged as part of a different stack</td><td>The PR was already merged through a different stack (stacked PRs only)</td></tr><tr><td>🚫 Cancel</td><td>Part of this PR's stack was pushed to</td><td>New commits were pushed to a PR in the stack while in the queue (stacked PRs only)</td></tr></tbody></table>
+<table><thead><tr><th width="167">Category</th><th width="248">Reason</th><th>Description</th></tr></thead><tbody><tr><td>✅ Pass</td><td>Merged by Trunk</td><td>Passed all tests in Merge Queue and merged by Trunk</td></tr><tr><td>✅ Pass</td><td>Merged manually</td><td>User manually merged the PR in Git</td></tr><tr><td>❌ Failure</td><td>Test run timeout</td><td>User-defined timeout for tests exceeded</td></tr><tr><td>❌ Failure</td><td>Failed Tests</td><td>Required test failed while testing the PR in the merge queue</td></tr><tr><td>❌ Failure</td><td>Merge conflict</td><td>A (git) merge conflict encountered</td></tr><tr><td>❌ Failure</td><td>Config parsing failure</td><td>Malformed <code>trunk.yaml</code> that couldn't be parsed</td></tr><tr><td>❌ Failure</td><td>Config bad version</td><td>Invalid version field in <code>trunk.yaml</code></td></tr><tr><td>❌ Failure</td><td>Config bad required statuses</td><td>Failed to parse required statuses in <code>trunk.yaml</code></td></tr><tr><td>❌ Failure</td><td>No required statuses</td><td>No source for required tests was found in <code>trunk.yaml</code> or branch protection settings</td></tr><tr><td>❌ Failure</td><td>GitHub API Failed</td><td>GitHub returned an error to us that could not be resolved while processing the PR</td></tr><tr><td>❌ Failure</td><td>PR updated at merge time</td><td>PR updated as Trunk was attempting to merge it</td></tr><tr><td>🚫 Cancel</td><td>Canceled by user</td><td>PR explicitly canceled by user</td></tr><tr><td>🚫 Cancel</td><td>PR closed</td><td>PR closed (not merged)</td></tr><tr><td>🚫 Cancel</td><td>PR pushed to</td><td>New commits pushed to the PR branch while in the merge queue</td></tr><tr><td>🚫 Cancel</td><td>PR draft</td><td>PR was converted to a draft, which cannot be merged</td></tr><tr><td>🚫 Cancel</td><td>PR base branch changed</td><td>Base branch of PR in the merge queue changed</td></tr><tr><td>🚫 Cancel</td><td>Admin requested</td><td>Trunk employee canceled PR during a support session (extreme cases)</td></tr></tbody></table>
 
 ### Time in queue
 
diff --git a/merge-queue/chrome-extension.md b/merge-queue/chrome-extension.md
index 4cef9426..db74e8a1 100644
--- a/merge-queue/chrome-extension.md
+++ b/merge-queue/chrome-extension.md
@@ -52,26 +52,6 @@ Once a PR is in the queue, the extension panel updates in real time as it moves
 * **Tests Passed** - waiting for upstream PRs before merging
 * **Merged**, **Failed** - terminal states
 
-### Stacked pull requests
-
-{% hint style="info" %}
-Stacked PR queue support requires the [Trunk Sudo GitHub App](../setup-and-administration/trunk-sudo-app.md) and the `/trunk stack` workflow. Stacks submitted one PR at a time with `/trunk merge` are tracked individually, not as a group.
-{% endhint %}
-
-When a stack is queued with [`/trunk stack`](using-the-queue/stacked-pull-requests.md#merge-the-stack-as-one-unit), the extension shows a stack-aware view on every member PR page.
-
-**What the panel shows:**
-
-* **Stack path** — the full list of PRs in the stack from tip to base, so you can see where your PR sits within the group.
-* **Stacked PR chip** — a link to the combined test PR Trunk creates for the stack (labeled **Stacked PR #N**). Click it to open the stacked PR on GitHub and inspect its CI status.
-
-**Actions:**
-
-* **Add stack to queue** — enqueues the entire stack as one unit. Clicking it on any member PR page submits the same stack.
-* **Remove** — removes the whole stack from the queue.
-
-Re-enqueueing after a remove works the same way: click **Add stack to queue** on any member PR page to resubmit the stack.
-
 ### Rolling the Extension out to an entire Org
 
 Chrome admins can install the Trunk extension for everyone in a Google Workspace organization using the [Chrome Web Store ID](https://chromewebstore.google.com/detail/liggeliamkammmieidmmfmmdnjilabgn) `liggeliamkammmieidmmfmmdnjilabgn`. See Google's [Automatically install apps and extensions](https://support.google.com/chrome/a/answer/6306504?hl=en) guide for the admin console steps.
diff --git a/merge-queue/getting-started/configure-branch-protection.md b/merge-queue/getting-started/configure-branch-protection.md
index 26eed2a2..a01d76a5 100644
--- a/merge-queue/getting-started/configure-branch-protection.md
+++ b/merge-queue/getting-started/configure-branch-protection.md
@@ -114,7 +114,7 @@ This ruleset encodes the rules that determine when a PR is ready to merge. Trunk
 2. Target the same protected branch (e.g., `main`) with the same single-include targeting.
 3. Under **Rules → Branch rules**, add the rules that gate mergeability — typically **Require a pull request before merging** and **Require status checks to pass**. Add others (signed commits, linear history, etc.) as your team requires.
 4. **Do not** add the Trunk GitHub App (`trunk-io`) to the bypass list. The queue relies on GitHub reporting the PR as not-yet-ready until these rules pass.
-5. Optionally, add **Trunk Sudo** to the bypass list as **Exempt** if you use [Force merge](../using-the-queue/force-merge.md) or stacked PRs. See the [Trunk Sudo page](../../setup-and-administration/trunk-sudo-app.md) for the full guidance.
+5. Optionally, add **Trunk Sudo** to the bypass list as **Exempt** if you use [Force merge](../using-the-queue/force-merge.md). See the [Trunk Sudo page](../../setup-and-administration/trunk-sudo-app.md) for the full guidance.
 6. Save.
 
 <figure><img src="../../.gitbook/assets/merge-github-ruleset-prs.png" alt="GitHub ruleset with Require a pull request before merging and Require status checks to pass enabled, Trunk.io not on the bypass list"><figcaption>Ruleset #2: Trunk is <em>not</em> on the bypass list, so the queue respects these requirements when admitting PRs.</figcaption></figure>
@@ -160,7 +160,7 @@ Before submitting your first PR to the queue, confirm:
 * [ ] Ruleset #2 targets only your protected branch and does **not** bypass Trunk.
 * [ ] Every other Branch ruleset visible at the organization level and on this repository either does not match `trunk-temp/**/*`/`trunk-merge/**/*`, or explicitly excludes both patterns.
 * [ ] (If using [Trunk Sudo](../../setup-and-administration/trunk-sudo-app.md)) Trunk Sudo is on Ruleset #1's bypass list as **Exempt**.
-* [ ] (If using [Trunk Sudo](../../setup-and-administration/trunk-sudo-app.md) **and** Force merge or stacked PRs) Trunk Sudo is also on Ruleset #2's bypass list as **Exempt**.
+* [ ] (If using [Trunk Sudo](../../setup-and-administration/trunk-sudo-app.md) **and** Force merge) Trunk Sudo is also on Ruleset #2's bypass list as **Exempt**.
 
 #### Migrating from Classic rules to Rulesets <a href="#migrating-from-classic-rules-to-rulesets" id="migrating-from-classic-rules-to-rulesets"></a>
 
diff --git a/merge-queue/using-the-queue/README.md b/merge-queue/using-the-queue/README.md
index 3e6982be..e1191eac 100644
--- a/merge-queue/using-the-queue/README.md
+++ b/merge-queue/using-the-queue/README.md
@@ -11,9 +11,6 @@ These pages cover the daily operations that developers perform when working with
 [**Submit and cancel pull requests**](reference.md)\
 How to add PRs to the queue via GitHub comments, CLI, or UI, and remove them when needed.
 
-[**Work with stacked pull requests**](stacked-pull-requests.md)\
-Manage dependent PRs that build on each other.
-
 ### Monitor and troubleshoot
 
 [**Monitor queue status**](monitor-queue-status.md)\
diff --git a/merge-queue/using-the-queue/reference.md b/merge-queue/using-the-queue/reference.md
index e81c9a51..54d9d7bc 100644
--- a/merge-queue/using-the-queue/reference.md
+++ b/merge-queue/using-the-queue/reference.md
@@ -20,7 +20,7 @@ trunk login
 trunk merge <pr-number>
 ```
 
-Admins can also use [`/trunk merge --force`](force-merge.md) to push a PR through the queue when branch protection isn't satisfied. To submit a chain of dependent PRs as a single unit, see [`/trunk stack`](stacked-pull-requests.md#merge-the-stack-as-one-unit).
+Admins can also use [`/trunk merge --force`](force-merge.md) to push a PR through the queue when branch protection isn't satisfied.
 
 We offer similar commands for cancellation.
 
diff --git a/setup-and-administration/trunk-sudo-app.md b/setup-and-administration/trunk-sudo-app.md
index 00424eda..1575c946 100644
--- a/setup-and-administration/trunk-sudo-app.md
+++ b/setup-and-administration/trunk-sudo-app.md
@@ -9,7 +9,7 @@ description: >-
 
 Trunk Sudo is a second Trunk GitHub App, separate from the [main Trunk GitHub App](github-app-permissions.md). Its only purpose is to programmatically merge pull requests while bypassing GitHub branch protections, on behalf of Trunk features that need that capability.
 
-Trunk Sudo is a shared prerequisite for bypass-dependent features. Today it powers [Force merge](../merge-queue/using-the-queue/force-merge.md) and [stacked pull requests with `/trunk stack`](../merge-queue/using-the-queue/stacked-pull-requests.md#merge-the-stack-as-one-unit).
+Trunk Sudo is a prerequisite for bypass-dependent features. Today the only such feature is [Force merge](../merge-queue/using-the-queue/force-merge.md).
 
 {% hint style="info" %}
 **Trunk Sudo is optional.** You only need to install it if you plan to use a feature that requires it. If you don't use any bypass-dependent features, you can skip this setup.
@@ -116,11 +116,6 @@ This permission includes access to update GitHub Action workflow files.
 
 Required so Trunk Sudo can merge PRs that modify files under `.github/`. GitHub blocks any merge that touches workflow files unless the merging actor has this permission.
 
-### Features that use Trunk Sudo
-
-* [Force merge](../merge-queue/using-the-queue/force-merge.md) — admins push a PR through Merge Queue even when branch protection isn't satisfied.
-* [Stacked pull requests with `/trunk stack`](../merge-queue/using-the-queue/stacked-pull-requests.md#merge-the-stack-as-one-unit) — combine a chain of dependent PRs into a single stacked PR that moves through the merge queue as one unit.
-
 ### Next steps
 
 → [**Force merge**](../merge-queue/using-the-queue/force-merge.md) — use the Trunk Sudo app to merge PRs through the queue that don't satisfy branch protection.
diff --git a/summary.md b/summary.md
index 494767bf..46cdbf93 100644
--- a/summary.md
+++ b/summary.md
@@ -29,7 +29,6 @@
   * [Submit and cancel pull requests](merge-queue/using-the-queue/reference.md)
   * [Monitor queue status](merge-queue/using-the-queue/monitor-queue-status.md)
   * [Handle failed pull requests](merge-queue/using-the-queue/handle-failed-pull-requests.md)
-  * [Work with stacked pull requests](merge-queue/using-the-queue/stacked-pull-requests.md)
   * [Emergency pull requests](merge-queue/using-the-queue/emergency-pull-requests.md)
   * [Force merge](merge-queue/using-the-queue/force-merge.md)
 * [Integration for Slack](merge-queue/integration-for-slack.md)
