# Tasks: premium-award-ui-icons-code-review ## Fase 0 — Guardrails - [x] No ejecutar build. - [ ] No revertir cambios ajenos. - [ ] Verificar estado inicial con `git status --short`. - [ ] Ejecutar baseline de tests permitido: `flutter test`. - [ ] Registrar fallos existentes antes de tocar código si los hubiera. ## Fase 1 — Tokens y tema - [x] Crear tests para validar tokens premium mínimos. - [x] Crear `lib/tema/pluriwave_tokens.dart`. - [x] Crear `lib/tema/pluriwave_theme.dart`. - [x] Crear `lib/tema/pluriwave_motion.dart`. - [x] Reemplazar `ColorScheme.fromSeed` genérico por tema PluriWave tokenizado. - [x] Mantener Material 3, pero con identidad propia. - [x] Asegurar que widgets existentes sigan usando `Theme.of(context)`. - [ ] Ejecutar `flutter test`. ## Fase 2 — Sistema de iconos - [x] Definir contrato `PluriIcon`. - [x] Definir enum/id de iconos core. - [x] Implementar variantes `outline`, `filled`, `activeGlow`. - [x] Agregar semantics labels obligatorios. - [x] Reemplazar iconos de bottom navigation por `PluriIcon`. - [ ] Agregar tests de variante activa, labels semánticos, tap targets y ausencia de regresión en navegación. - [ ] Ejecutar `flutter test`. ## Fase 3 — Asset pipeline - [x] Persistir prompts de mockup/icon sheet en documentación del cambio. - [ ] Generar sheet con gutters chroma #00FF00. - [ ] Implementar o usar pipeline: detectar gutters, crop, chroma-to-alpha, trim, center, pad, export, contact sheet, validate. - [ ] Rechazar sheets con edge-touching, gutters contaminados o escala inconsistente. - [ ] Exportar assets finales a `assets/icons/` o `assets/images/`. - [ ] Actualizar `pubspec.yaml` solo si hace falta declarar subcarpetas nuevas. - [ ] Ejecutar `flutter test`. ## Fase 4 — Componentes premium - [x] Crear `PluriWaveScaffold`. - [x] Crear `PluriGlassSurface`. - [x] Crear fondo premium reutilizable con ondas/global aura. - [x] Refactorizar `tarjeta_emisora` hacia tarjeta premium tokenizada. - [x] Refactorizar `mini_reproductor` con glass pill y estado activo. - [x] Refactorizar `visualizador_audio` con `RepaintBoundary`. - [x] Refactorizar `ecualizador_widget` con tokens y estados accesibles. - [ ] Agregar widget tests para componentes críticos. - [ ] Ejecutar `flutter test`. ## Fase 5 — Pantallas - [x] Actualizar `PantallaInicio` con hero global wave, tendencias y populares. - [x] Actualizar `PantallaBuscar` con search premium, chips y stale-state guard. - [x] Actualizar `PantallaFavoritos` con diseño reorderable. - [x] Actualizar `PantallaReproductor` con player hero, controles premium y EQ entry point. - [x] Actualizar `PantallaAjustes` con cards agrupadas e iconos propios. - [ ] Agregar/actualizar tests de pantallas existentes. - [ ] Ejecutar `flutter test`. ## Fase 6 — Hardening técnico - [x] Corregir listener leak en `lib/app.dart`: mover escucha de `errorStream` fuera de `didChangeDependencies`, guardar `StreamSubscription`, cancelar en `dispose`. - [ ] Agregar test que falle si se registran listeners duplicados. - [ ] Implementar control de stale async state en búsquedas/cargas. - [ ] Agregar tests de “última búsqueda gana”. - [x] Implementar reorder persistente de favoritos. - [ ] Agregar tests de reorder exitoso, rollback ante error, no duplicados por `uuid` y favorito actual correcto. - [ ] Ejecutar `flutter test`. ## Fase 7 — Accesibilidad y polish - [ ] Revisar contraste de tokens principales. - [ ] Asegurar labels semánticos en controles principales. - [ ] Asegurar tap targets mínimos 48x48. - [ ] Soportar reduced motion / disable animations. - [ ] Evitar que glow/color sea la única señal de estado. - [ ] Agregar tests de semantics para nav, player, favoritos y EQ. - [ ] Ejecutar `flutter test`. ## Fase 8 — Persistencia SDD híbrida - [x] Persistir `proposal.md`, `spec.md`, `design.md`, `tasks.md` en openspec. - [x] Guardar equivalentes en Engram con topic keys: - `sdd/premium-award-ui-icons-code-review/proposal` - `sdd/premium-award-ui-icons-code-review/spec` - `sdd/premium-award-ui-icons-code-review/design` - `sdd/premium-award-ui-icons-code-review/tasks` - [x] Marcar siguiente fase recomendada: `sdd-verify`. - [x] No ejecutar build.