Created
Jul 06, 23:26
Started
Jul 06, 23:27
Completed
Jul 07, 02:37
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
shiny-status-indicators
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/shiny-status-indicators
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
User requested shiny Pokemon sensitivity: add a sparkle marker to Claude/Codex status lines next to the Pokemon type emoji, add the same sparkle at the northeast of shiny crew icons, and increase shiny spawn frequency. Treat shiny spelling variants as the same domain concept.
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.
Scout report: merge-ready - Deep review PASS: acceptance met, odds increase correct+bounded, gates green at PR-head tree 69b1529. Reporter: carl Outcome: merge-ready Findings: - Odds change 100->50 prod, 10->5 dev/QA: N decreases so probability INCREASES (matches acceptance); bounded — test stays 0 (never), roll_shiny? guards rand(0) via odds.positive?, no always-shiny regression. - Shiny flag persistence hardened: Task.shiny_value? parses true/'true'/'1' (DEVOPS_SCALAR_KEYS/JSON round-trip drift); mascot_shiny is server-owned, not client-permitted — consistent. - decorate_type_emoji is idempotent (deletes sparkle then re-appends), normalizes legacy prefix -> suffix, handles empty type -> bare sparkle; replicated across 4 CLI + model, each unit-tested. - _agent_avatar: badge at -top-1 -right-1 (northeast); overflow-hidden removal is required (img keeps own rounded-full) so badge isn't clipped — safe. Questions: - none Checks: - bin/dor-check PASS from worktree: unit/component/integration/e2e green, full-suite+rubocop certified @69b1529, CI 4/4 green - Cert fingerprint 69b1529 == PR-head tree hash (primary-checkout STALE was false positive)
Scout report: merge-ready - UI light review: shiny sparkle-after-emoji + NE crew badge render correctly; no #437 same-file overlap Reporter: shannon Outcome: merge-ready Findings: - Status line + markers append sparkle AFTER type emoji (emoji then sparkle, no gap); tab title matches; plain emoji outside the tint escape so Apple Terminal 256-color cap is respected - Crew shiny badge is NE-anchored (-top-1 -right-1); existing duration/live/blocked pills are SW (-bottom-1 -left-1) so no collision; badge is aria-hidden + pointer-events-none so hover/title still work - overflow-hidden removed from shared agent_avatar span is safe: the img self-clips via its own rounded-full object-cover; badge inert for the ~15 non-mascot callers since it only paints when agent.shiny? - No same-file overlap with reviewed PR #437 (this PR does not touch _stage_agent_avatars.html.erb or _task_card.html.erb); group-hover:scale-105 scales avatar+badge together with no clip Questions: - none Checks: - [unit] pokemon_shiny_test / task_mascot_shiny_test / statusline_test / task_cli_test / agent_marker_test green (per PR) - [component] board_card_shiny_mascot_test asserts avatar-shiny-badge present for shiny, absent for normal - [e2e] shiny_mascot.spec.js asserts the sparkle badge text on the board card
Avi review approved; ready for Steffon's qa-release sweep.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
SMALL
Actual
XL
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.