Created
Jun 24, 02:39
Started
Jun 24, 02:39
Completed
Jun 24, 03:35
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
dor-check-post-deploy-nudge
Repositories
mcritchie-studio
Release Train
—
Branch
feat/dor-check-post-deploy-nudge
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
post_deploy_cmd exists end-to-end (bin/task --post-deploy-cmd; bin/release runs it post-prod, aborts on non-zero). But seed/data-migration features dont set it -> manual rake runs post-ship (pokemon seed/resync x3 this session). Make bin/dor-check detect a diff touching db/seeds or db/migrate and WARN/REQUIRE the task carry a post_deploy_cmd. Follow the existing chore-gate pattern in bin/dor-check. Exempt if post_deploy_cmd set. Tests via the dor_check_test.rb tmpdir-repo pattern.
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.
2-senior review: jasper(light) APPROVE; carl(heavy) BLOCK. Real cross-component bug: the 'none' escape hatch is honored by the dor-check GATE but Release::PostDeploy.plan (post_deploy.rb:51) only skips an EMPTY cmd, not 'none' -> a schema-only migration set to post_deploy_cmd='none' (the DOCUMENTED fix) makes the conductor run 'heroku run none' -> non-zero -> ABORTS the whole release. Common path (most migrations are schema-only). Proven at runtime. Gate test covered 'none' but no consumer test.
Teach the release CONSUMER the 'none' sentinel: in app/models/release/post_deploy.rb#plan, skip it like an empty cmd -> 'next if cmd.empty? || cmd.strip.casecmp?("none")'. Add a unit test in test/models/release/post_deploy_test.rb asserting a member with post_deploy_cmd='none' produces NO plan entry (and a real cmd still does). The gate side already works; only the downstream skip + its test are missing.
Rework VERIFIED (head f436b55): Release::PostDeploy#plan now skips 'none' like empty (post_deploy.rb:58, 'next if cmd.empty? || cmd.casecmp?("none")', strip+case robust) so the documented escape hatch no longer detonates the release; consumer-skip test added (post_deploy_test.rb:70, proven fail-without/pass-with). 56+143 tests 0 failures, rubocop clean, CI green 4/4. Carl(heavy) BLOCK resolved; Jasper(light) already approved. = 2 approvals.
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.