Created
Jun 24, 17:56
Started
Jun 24, 17:57
Completed
Jun 24, 18:59
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
release-pipeline-hardening
Repositories
mcritchie-studio
Release Train
—
Branch
feat/release-pipeline-hardening
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Session retro improvements #2,#4,#5 (keep as 3 separate testable functions in bin/release). #2 BATCH ADOPT: bin/release merge currently does gh pr merge + a cold-start heroku-run adopt! PER PR; 3 in a loop blew the 2-min tool timeout and one adopt timed out MID-run leaving a half-state (PR merged, task stuck reviewed). Make 'bin/release merge <slug...>' accept multiple slugs and run ALL the Release::Conductor.adopt! calls in a SINGLE heroku run (one dyno spin-up, N flips) instead of one heroku run each. #4 SHIP PREFLIGHT: bin/release ship ffs main + runs bin/rails test ON THE PRIMARY CHECKOUT; twice this session that checkout was dirty (stale schema.rb) or left on a leftover pr-161 branch by a review agent, nearly breaking the ff. Add a preflight at the top of ship that asserts the primary checkout is on 'main' and the tree is clean — abort loudly with the offending branch/dirty files (or auto-stash with a clear message) BEFORE the ff. #5 OVERLAP PLANNER: #159 passed review then conflicted on release because siblings all touched task.rb/docs/helpers first (wasted rework). Before a batch merge, fetch each PR's changed files (gh pr view <n> --json files), compute pairwise overlap, print the overlapping files + a suggested merge order + which PR will need a post-merge rebase. DOCS: update docs/agents/system/devops-cycle-design.md and the release-conductor mechanics module.
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.
Post-merge review sign-off (cascade finished after the parallel conductor merged this): carl[heavy] APPROVE (ensure-adopt half-state guard proven red-before-fix via source mutation; preflight catches wrong-branch AND dirty-tree; overlap planner degrades gracefully), jasper[light] APPROVE. Non-blocking fast-follow: ship preflight is too strict on UNTRACKED files — git status --porcelain counts ?? entries, so the untracked retro-rel-*.md on the primary checkout would abort the NEXT ship even though --ff-only is safe with non-colliding untracked files. Exclude untracked (or downgrade untracked-only to a warning; keep tracked-modified + wrong-branch as hard aborts); fix-text should say 'stash -u'/'git clean'.
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.