Sentry PR Friction and ADR Standardization
Sentry PR Friction and ADR Standardization
Section titled “Sentry PR Friction and ADR Standardization”Abstract
Section titled “Abstract”This study evaluates where review back-and-forth is concentrated in getsentry/sentry and identifies which Architecture Decision Records (ADRs) plus enforceable rules could reduce repeated discussion cycles.
- Window: last 90 days
- Sample: 500 merged PRs
- Metrics: review events, merge latency, changed file count, churn
- Deep dive: highest-friction PRs by review-event volume and merge latency
Baseline Findings
Section titled “Baseline Findings”- Median time-to-merge:
4.12h - P75/P90 time-to-merge:
21.84h / 69.54h - Median review events per PR:
2(mean3.19) - Formal
CHANGES_REQUESTED:1% - Small PR median TTM:
2.07h - Large PR median TTM:
21.44h
Coverage caveat
Section titled “Coverage caveat”The baseline above is merge-biased. It captures friction in merged PRs but misses:
- high-discussion PRs that were closed without merge
- open PRs with substantial discussion that later went stale
Those two cohorts often contain failed-consensus signals and unresolved decision ambiguity.
Missing-Signal Extension: Abandoned and Stale PRs
Section titled “Missing-Signal Extension: Abandoned and Stale PRs”To capture those signals, we added:
- closed-unmerged PRs in the same 90-day window
- open PRs stale for 14+ days and 30+ days
Closed-unmerged traction
Section titled “Closed-unmerged traction”- Queried: 500 closed-unmerged PRs (GitHub API list cap)
- Median discussion volume:
2 - High-discussion abandoned share (
>=10discussion items):2.4%
Examples:
- #109150: 45 discussion items, closed unmerged
- #108406: 30 discussion items, closed unmerged
- #109526: 24 discussion items, closed unmerged
- #111112: 22 discussion items, closed unmerged
Open stale traction
Section titled “Open stale traction”- Open PRs sampled:
286 - Stale 14+ days:
36 - Stale 30+ days:
9
Examples:
Interpretation update
Section titled “Interpretation update”Measuring merged PRs alone can understate governance friction. Abandoned high-traction PRs and stale discussed PRs should be tracked as first-class outcomes in future runs.
High-Friction Examples
Section titled “High-Friction Examples”- #111160: 43 review events
- #111192: 25 review events
- #111306: 23 review events
- #111454: 20 review events
- #110956: 18 review events
Recurring Discussion Themes
Section titled “Recurring Discussion Themes”- API contract and compatibility semantics
- Nullability/type safety and error paths
- UX flow behavior invariants
- Testing evidence expectations
- Permission and reliability guardrails
Proposed ADR Pack
Section titled “Proposed ADR Pack”- PR Slice Boundaries and Risk Budget
- API Contract Evolution Protocol
- Test Evidence Matrix by Change Type
- UI/Flow Behavioral Invariants
- Permission and Reliability Guardrails
Reproducibility
Section titled “Reproducibility”- Study folder: studies/sentry-pr-review-friction
- Method script: analyze_sentry_prs.py
- Metrics output: sentry_pr_friction_report.json