Commit 76ff92b
Add PR splitting strategy documentation for complex CI failures
Document comprehensive strategy for breaking large PRs into smaller,
more manageable pieces when facing multiple CI test failures.
New Document: .claude/docs/pr-splitting-strategy.md
Key Sections:
1. When to Split a Large PR
- Indicators: multiple failures, 50+ commits, mixed concerns
- Decision criteria and time investment thresholds
- Real example: PR #2069 with 52 commits, 3 failures + 1 hung
2. Strategy for Splitting
- Identify independent commits
- Determine merge order (docs → bug fixes → infrastructure)
- Create focused PRs with clear scope
- Handle original PR (close vs rebase)
3. Real-World Example: PR #2069 Split Plan
- PR 1: Documentation (merge first, zero risk)
- PR 2: buildConsoleReplay fix (focused bug fix)
- PR 3: Workspace dependencies (small infrastructure)
- PR 4: Monorepo node renderer (defer, most complex)
4. Benefits & Anti-Patterns
- Benefits: easier review, incremental progress, better debugging
- Anti-patterns: splitting too much, dependent changes, no testing
- Decision tree for when to split
5. Templates & Timelines
- PR split announcement template
- Real-world 4-week timeline example
- Incremental progress vs stuck on one PR
Updated: .claude/docs/analysis/INDEX.md
- Added pr-splitting-strategy.md as document #6
- Added to quick navigation: "Decide whether to split a large PR"
- Listed in related documentation section
Rationale:
When facing complex PRs with multiple CI failures (like PR #2069):
- 52 commits make bisecting difficult
- Multiple unrelated failures (integration, Pro, hung tests)
- Estimated 4-8 hours to fix all issues
- Some parts can provide value independently
Splitting allows:
- Merge low-risk changes (docs) immediately
- Review focused changes more easily
- Incremental progress instead of being blocked
- Better attribution if new issues arise
- Unblock dependent work
This strategy applies to any large PR with multiple failures, not just
monorepo work. Provides decision framework and concrete examples.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <[email protected]>1 parent 3c59f10 commit 76ff92b
2 files changed
+506
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
86 | 116 | | |
87 | 117 | | |
88 | 118 | | |
89 | 119 | | |
90 | 120 | | |
91 | 121 | | |
92 | 122 | | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
93 | 126 | | |
94 | 127 | | |
95 | 128 | | |
| |||
0 commit comments