Agents Builders

Shiny Status Indicators

Archived
shiny-status-indicators

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

QA URL

Production URL

ui pokemon statusline

Acceptance Criteria

  • Status lines show shiny sparkle after type emoji
  • Crew avatars mark shiny mascots at northeast
  • Shiny spawn odds increase for new draws

Expected Test Plan

  • [unit] Cover shiny emoji formatting and spawn probability
  • [component] Assert board crew shiny badge renders
  • [integration] Verify session API includes shiny sparkle
  • [e2e] Confirm shiny mascot card badge is visible

Checks Run

  • [unit] bin/rails test test/models/pokemon_shiny_test.rb test/models/task_mascot_shiny_test.rb
  • [component] bin/rails test test/integration/board_card_shiny_mascot_test.rb
  • [integration] bin/rails test test/controllers/api/v1/sessions_controller_test.rb test/commands/agent_worktree_test.rb
  • [e2e] E2E_PORT=3003 npx playwright test e2e/shiny_mascot.spec.js
  • [full-suite@ca5ecc783150c92cd948ab08a90dbb313e777c66] bin/rails test green
  • [rubocop@ca5ecc783150c92cd948ab08a90dbb313e777c66] bin/rubocop clean

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.

Sizing Avi · PO Dev SMALL Actual XL
  1. Created Designed
    D Diglett
    Diglett
    Model
    Duration
    Tokens
    Cost
    Completed Jul 06, 23:26 · 1 day ago
    api
  2. Designed Building
    D Diglett
    Diglett
    Model
    gpt-5.5
    Duration
    under a minute
    Tokens
    444,966
    Cost
    ~$0.36
    Started Jul 06, 23:26
    Completed Jul 06, 23:27 · 1 day ago
    cli
  3. Building Submitted
    D Diglett
    Diglett
    Model
    gpt-5.5
    Duration
    about 1 hour
    Tokens
    18,631,965
    Cost
    ~$12.61
    Started Jul 06, 23:27
    Completed Jul 07, 00:26 · 1 day ago
    cli
  4. Submitted Reviewed Review Activity
    C Carl
    Carl primary
    S Shannon
    Shannon light
    Model
    claude-opus-4-8
    Duration
    about 1 hour
    Tokens
    Cost
    Started Jul 07, 00:26
    Completed Jul 07, 01:23 · 1 day ago
    cli
  5. Evolve
    D Diglett
    Diglett
    D Dugtrio
    Dugtrio
    triggered by
    C Carl
    Carl
    Model
    Duration
    about 1 hour
    Tokens
    Cost
    Started Jul 07, 00:26
    Completed Jul 07, 01:23 · 1 day ago
  6. Reviewed Assembled
    S Steffon
    Steffon
    Model
    gpt-5.5
    Duration
    44 minutes
    Tokens
    Cost
    Started Jul 07, 01:23
    Completed Jul 07, 02:07 · 1 day ago
  7. Assembled Shipped
    A Avi
    Avi
    Model
    gpt-5.5
    Duration
    30 minutes
    Tokens
    19,780,294
    Cost
    ~$12.49
    Started Jul 07, 02:07
    Completed Jul 07, 02:37 · 1 day ago
  8. Shipped Archived
    Model
    Duration
    1 day
    Tokens
    Cost
    Started Jul 07, 02:37
    Completed Jul 08, 06:32 · about 6 hours ago

Conversation

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

Comment carl 1 day ago

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)

Comment shannon 1 day ago

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

Handoff avi 1 day ago

Avi review approved; ready for Steffon's qa-release sweep.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

SMALL

Actual

XL