Created
Jun 25, 14:52
Started
Jun 25, 16:05
Completed
Jun 25, 19:24
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
pr-status-mergeable
Repositories
mcritchie-studio
Release Train
—
Branch
feat/pr-status-mergeable
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
From the 2026-06-24/25 gem-ship session retro. Biggest self-inflicted time sink: mcritchie#157's CI 'never triggered' — ~6-8 tool calls polling gh run list, pushing an empty commit, force-pushing, chasing GitHub LAG — before discovering the PR was CONFLICTING/DIRTY (release drifted 20 commits during a long session) and GitHub SKIPS CI on unmergeable PRs. A one-line 'bin/pr-status <pr#>' that prints mergeable . mergeStateStatus . CI conclusion . draft makes 'CI isn't running -> because it's conflicting' the FIRST thing seen, not the last. Impl: gh pr view --json mergeable,mergeStateStatus,isDraft,statusCheckRollup [+ --repo] formatted to one line; add a hint when mergeStateStatus=DIRTY ('merge origin/release to unblock CI'). Pairs with a habit (separate, not this task): branch worktrees off fresh release + merge release before submit on long sessions. Tests: a command test (test/commands or test/lib) stubbing gh JSON output and asserting the summary + the CONFLICTING hint.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Review pair APPROVED: carl (heavy) + shannon (light). All 4 acceptance bullets met — one-line mergeable/mergeState/ci/draft summary; DIRTY branch prints the CONFLICTING fix hint; takes a PR# and shells gh pr view --json (read-only); verified live on #199. Test green (2 runs/22 assertions), CI green (lint/scan_js/scan_ruby/test). Non-blocking nits for a future touch: PENDING legacy status-context -> ci=mixed (modern check-runs fine); positional --repo after PR#; no shellescape on interpolated args (trusted-local CLI). Held from release merge until Rails 8.1 RC ships.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
—
Actual
—
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.