Agents Builders

Release pipeline hardening

Archived steffon
release-pipeline-hardening

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

devops release-tooling

Acceptance Criteria

  • bin/release merge accepts multiple task slugs
  • Batched merge runs all adopts in one heroku run
  • bin/release ship aborts unless primary on clean main
  • Merge warns when batched PRs touch overlapping files
  • Docs updated for batch merge ship-preflight overlap

Expected Test Plan

  • [unit] MergePlan/Cli.positional_slugs/ShipSequence preflight (model specs)
  • [integration] bin/release merge batch+overlap+ensure & ship_preflight (CLI subprocess)

Checks Run

  • [review] Carl (heavy/backend) APPROVE + Shannon (light) APPROVE — release suite 123 runs/370 assertions 0 fail; single-slug merge backward-compat preserved, batch adopt atomic via ensure, ship-preflight fails closed, overlap warning non-fatal

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.

  1. Created Designed
    D Drowzee
    Drowzee
    Model
    Duration
    Tokens
    Cost
    Completed Jun 24, 17:56 · 3 days ago
    api
  2. Designed Building
    D Drowzee
    Drowzee
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 24, 17:56
    Completed Jun 24, 17:57 · 3 days ago
    cli
  3. Building Submitted
    D Drowzee
    Drowzee
    Model
    claude-opus-4-8
    Duration
    31 minutes
    Tokens
    Cost
    Started Jun 24, 17:57
    Completed Jun 24, 18:27 · 3 days ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    A Alex
    Alex light
    Model
    claude-opus-4-8
    Duration
    12 minutes
    Tokens
    Cost
    Started Jun 24, 18:27
    Completed Jun 24, 18:39 · 3 days ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    2 minutes
    Tokens
    Cost
    Started Jun 24, 18:39
    Completed Jun 24, 18:41 · 3 days ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    18 minutes
    Tokens
    Cost
    Started Jun 24, 18:41
    Completed Jun 24, 18:59 · 3 days ago
  7. Shipped Archived
    8
    81fad33e-98b5-4075-8ed6-d0efe6cb5804
    Model
    claude-opus-4-8
    Duration
    1 day
    Tokens
    Cost
    Started Jun 24, 18:59
    Completed Jun 25, 21:16 · 1 day ago
    cli

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

Comment avi 3 days ago

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