Created
Jun 24, 05:22
Started
Jun 24, 05:23
Completed
Jun 24, 13:45
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
deployments-rank-and-filter
Repositories
mcritchie-studio
Release Train
—
Branch
feat/deployments-rank-and-filter
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Port the proven News/Content rank-by-100s scheme onto Task (reuse the existing position column as the rank; no schema migration). FEATURE 1 (both boards, bump on stage-move + creation): app/models/task.rb:99 ordered scope ASC->DESC; set_initial_position (task.rb:592) and set_stage_timestamp bump (task.rb:559) +1 -> +100; tasks_controller#reorder (l.7) position:index -> (slugs.length-index)*100. One-time idempotent rake tasks:respace_ranks re-spaces existing tasks per stage by created_at ASC -> (idx+1)*100, guarded so it won't clobber post-cutover manual reorders; wired via --post-deploy-cmd. FEATURE 2 (client-side, app/views/tasks/_board.html.erb): add hiddenApps[]/toggleApp/appHidden/appVisible to Alpine kanbanBoard(), mirroring agentFilter/matchesFilter; chip bar above the board grid (~line 257) built from distinct task.devops_repositories present, using app_emoji helper; card x-show combines matchesFilter && appVisible(reposCsv); multi-repo task hides if ANY of its apps toggled off. Counts stay unfiltered totals (agent-filter parity). Plan: /Users/alex/.claude/plans/logical-juggling-pinwheel.md
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 cascade: shannon[heavy] APPROVE (ranking deterministic, filter correct, no N+1, no traps, ui+db coverage complete) + carl[light] APPROVE. Non-blocking nits deferred (id-tiebreak, board_apps scoping). CI green.
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.