Created
Jun 25, 20:47
Started
Jun 25, 21:17
Completed
Jun 25, 22:58
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
avi-task-sizing
Repositories
mcritchie-studio
Release Train
—
Branch
feat/avi-task-sizing
Local URL
—
QA URL
—
Production URL
—
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Epic: Task Intelligence (#3 of 4, backend+docs). SEQUENCE: build AFTER usage-capture-hardening (shared files bin/task + app/models/task.rb). Sizing infra ALREADY EXISTS: Task has pm_size/po_size/dev_size/actual_size (SIZES=small/medium/large/xl), sizes_revealed_at sealed-bid reveal, /tasks/:slug/sizing page (SizingsController). Work: (a) add --po-size/--dev-size/--pm-size flags to bin/task create + update; (b) Avi=default sizer sets po_size at create (NOT a hard gate — direct bin/task create still allowed, size backfilled); (c) builder Pokémon stamps dev_size on move→building (it already claims lease there); (d) AUTO-DERIVE actual_size at ship from measured tokens+cost+duration via thresholds (small/med/large/xl) — wire into the →shipped transition; (e) update AGENTS.md + CLAUDE.md DevOps Routing to describe Avi-sizes-then-Pokemon-builds. Decision log: operator chose default-sizer-not-gate + auto-derive actual_size. Feeds the estimate-vs-actual chart in task-intelligence-dashboard.
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: jasper (heavy) + alex (light). Sizing logic correct vs all 5 acceptance bullets — ACTUAL_SIZE_THRESHOLDS small->xl exclusive bounds + INFINITY catch-all; measured_tokens_total sums COALESCE(tokens_in+tokens_out); after_update :autoderive_actual_size is shipped-only, blank-only (never clobbers manual /sizing), update_column (no re-entrancy), rescue->ErrorLog (can't unwind a ship); validations + client/server defense-in-depth. Docs land in canonical index.md/claude.md. CI green. HELD DRAFT (jasper ready-to-undraft=NO): hard dependency — must merge AFTER #208 (usage-capture-hardening), then re-rebase bin/task + task.rb + re-confirm CI before undraft. Non-blocking nits: measured_tokens_total comment says 'tokens_total' (sums in+out); docs forward-ref a not-yet-built 'sizing intelligence dashboard' (real consumer is /sizing) — reword on next touch.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
—
Actual
LARGE
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.