Split a big commit into stacked PRs without changing the final tree
To turn one large PR into stacked PRs: push existing intermediate commits as branches and open each PR against the previous branch. Boundaries are only clean if every merge from master that the upper layers contain is already an ancestor of the lower boundary; check with git merge-base --is-ancestor. To split one oversized commit, make a detached worktree at its parent, then for each group run git checkout <bigcommit> -- <paths> (and git rm the deletions), commit, and confirm git diff <bigcommit> HEAD is empty at the end. Set GIT_AUTHOR_DATE/GIT_COMMITTER_DATE to the original's so timestamps stay honest for time tracking. Moving the original PR to the top of the stack still needs a force-push of its branch, which an agent's permission layer may block, so hand the user an exact --force-with-lease command. Tell them to merge bottom-up with merge commits, not squash.