docs(merge-queue): reframe migrate-from-github around same-day switch#666
docs(merge-queue): reframe migrate-from-github around same-day switch#666samgutentag wants to merge 2 commits into
Conversation
…ual mode to settings verification Reframes migrating-from-github-merge-queue around Robert Eperjesi's guidance (slack thread C09L0GB2771/1778860519): dual mode is a brief settings-verification step before a full switch to Trunk, not a long-term coexistence mode. Restructures the page into a 4-step migration runbook (enable Trunk alongside, verify in dual mode, disable GH queue, announce), keeps the "Trunk handles external merges gracefully" claims (verified against trunk/services/merge/src/controller/graph_controller.ts), explains preemption as the reason a hard cutover is recommended, and adds dev-facing announcement copy admins can paste into Slack or email. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Claude finished @samgutentag's task in 2m 13s —— View job Review summary
No blocking issues found. The rewrite into a 4-step runbook is a clear improvement — the new top-of-page warning hint scopes dual mode appropriately, the "Why complete the migration" subsection gives admins the reason behind the recommendation, and the announcement template lowers the friction for admins to roll the change out. Posted 4 non-blocking inline nits:
Things I verified and that look good:
|
| * Branch protection rules trigger the required checks you expect. | ||
| * Test orchestration policies match your repo's CI. | ||
| * [Advanced settings](administration/advanced-settings.md) such as timeouts, batching, and optimistic merging behave correctly for your repo. |
There was a problem hiding this comment.
Nit (consistency): This bullet list uses "repo" twice (your repo's CI, for your repo), but the rest of this page and neighboring docs (merge-queue/getting-started/README.md) consistently use "repository". Recommend matching the surrounding style.
| * Branch protection rules trigger the required checks you expect. | |
| * Test orchestration policies match your repo's CI. | |
| * [Advanced settings](administration/advanced-settings.md) such as timeouts, batching, and optimistic merging behave correctly for your repo. | |
| * Branch protection rules trigger the required checks you expect. | |
| * Test orchestration policies match your repository's CI. | |
| * [Advanced settings](administration/advanced-settings.md) such as timeouts, batching, and optimistic merging behave correctly for your repository. |
| > Starting \[date], pull requests on `[repo]` will merge through Trunk Merge Queue instead of GitHub's. The day-to-day flow is the same: open a PR, get required checks green, then post `/trunk merge` on the PR instead of clicking GitHub's "Merge when ready" button. | ||
| > | ||
| > Trunk will leave a comment on each PR with its queue position and status. The full developer workflow is documented at \[link to Trunk's Using the Queue page]. | ||
| > | ||
| > Questions? Reply in this thread or DM \[admin contact]. |
There was a problem hiding this comment.
Nit (placeholder formatting): Placeholders mix two styles in the template — [repo] is in backticks while [date], [link to Trunk's Using the Queue page], and [admin contact] use the escaped form \[...]. For a copy/paste template, picking one style makes it easier for admins to spot what they need to replace. Backticks render as monospace in GitBook, which is the stronger visual cue that "this is a placeholder you must fill in" — consider using them for all four. (Non-blocking.)
| ### Migration steps | ||
|
|
||
| Follow the [Getting Started](getting-started/) to setup your repo with Trunk Merge Queue and configure the [settings](administration/advanced-settings.md) for your repository. | ||
| The recommended sequence for admins moving a repository from GitHub Merge Queue to Trunk Merge Queue. |
There was a problem hiding this comment.
Nit (style): This is a sentence fragment functioning as a section intro. Reads slightly off compared to the rest of the page which uses complete sentences. Consider:
| The recommended sequence for admins moving a repository from GitHub Merge Queue to Trunk Merge Queue. | |
| Follow this sequence to move a repository from GitHub Merge Queue to Trunk Merge Queue. |
Non-blocking.
| > **Heads up: we're moving to Trunk Merge Queue.** | ||
| > | ||
| > Starting \[date], pull requests on `[repo]` will merge through Trunk Merge Queue instead of GitHub's. The day-to-day flow is the same: open a PR, get required checks green, then post `/trunk merge` on the PR instead of clicking GitHub's "Merge when ready" button. | ||
| > | ||
| > Trunk will leave a comment on each PR with its queue position and status. The full developer workflow is documented at \[link to Trunk's Using the Queue page]. | ||
| > | ||
| > Questions? Reply in this thread or DM \[admin contact]. |
There was a problem hiding this comment.
Consider: This template is rendered as a Markdown blockquote, which is good for visual separation but means an admin copying the rendered text from GitBook may need to strip the indentation/styling depending on their browser's copy behavior. A fenced code block (no language) would make the template a one-click copy in GitBook's UI. Up to you — blockquote is fine if you prefer the inline-prose look.
…efault Push Pattern A (clean same-day switch) as the recommended path and demote Pattern B (admin-driven validation) to a smaller "Cautious route" section. Anti-pattern (long-term dual mode) is now a single warning callout instead of its own subsection. Moves the "Trunk handles external merges gracefully" claim into the Cautious route section, where it is genuinely a safety net for accidental collisions during validation, not a feature that supports long-term coexistence. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Claude finished @samgutentag's task in 1m 52s —— View job Review summary
No blocking issues. The latest rewrite (commit Verified
Non-blocking nits (carryovers from prior review + new)
Fix carryover nits → |
|
Verification status (2026-05-18): Verified: customers can use this. Ready to publish. Notes on the verification:
Next action: standard docs review (copy, anchors, GitBook preview). Two prior Claude reviews on this PR have logged non-blocking nits that are worth addressing before ready-for-review. |
|
Closing — Sam will handle this migration to docs2 manually. The reframe (clean same-day switch as the default, Klaviyo Slack rationale) is still the intended direction; tracking outside this PR. |
Summary
Reframes
merge-queue/migrating-from-github-merge-queue.mdaround a clean same-day switch as the recommended path. The original page presented "Running both merge queues simultaneously" as a common, low-risk option, which Robert Eperjesi and Eli Schleifer pushed back on in the #cs-klaviyo thread: long-term dual mode means in-flight PRs from both queues preempt each other and slows merges for everyone.Triggered by Klaviyo evaluating a pilot where some teams ran Trunk while others stayed on GitHub Merge Queue, and Matt flagging that the docs didn't make the recommended path clear.
The three patterns this page now distinguishes
/trunk mergeon a handful.What changed
trunk/services/merge/src/controller/graph_controller.ts(manualPushToTargetBranch,transitionAllNodesToPendingDueToManualPush).What did not change
summary.md(no nav change; same page, same path).Engineering reviewers
Context links
Test plan
#cautious-route-validate-first,#dev-facing-announcement-copy).🤖 Generated with Claude Code