The previous implementation filtered ALL .planning/-only commits, including
milestone archive commits, STATE.md, ROADMAP.md, and PROJECT.md updates.
Merging the PR branch then left the target with inconsistent planning state.
Fixes by distinguishing two categories of .planning/ commits:
- Structural (STATE.md, ROADMAP.md, MILESTONES.md, PROJECT.md,
REQUIREMENTS.md, milestones/**): INCLUDED in PR branch
- Transient (phases/, quick/, research/, threads/, todos/, debug/,
seeds/, codebase/, ui-reviews/): EXCLUDED from PR branch
The git rm in create_pr_branch is now scoped to transient subdirectories
only, so structural files survive cherry-pick into the PR branch.
Adds regression test asserting structural file handling is documented.
Closes#2004
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>