AgentSkillsCN

rq-cache-audit

审计 React Query 的缓存配置——staleTime、gcTime、失效策略。可用于优化数据获取性能,或诊断数据过时的问题。

SKILL.md
--- frontmatter
name: rq-cache-audit
description: Audita la configuración de cache de React Query - staleTime, gcTime, invalidaciones. Usar para optimizar performance de fetching o diagnosticar datos desactualizados.

React Query Cache Audit

Auditoría de estrategia de caching.

Proceso de Auditoría

1. Revisar Configuración Global

javascript
// Buscar QueryClient config
// Típicamente en App.js o providers/
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      staleTime: ???,  // Tiempo antes de refetch
      gcTime: ???,     // Tiempo en cache (antes: cacheTime)
      retry: ???,
    },
  },
});

2. Inventariar Queries

bash
# Buscar useQuery
grep -r "useQuery" src/ --include="*.js" -A 5

3. Checklist de Auditoría

markdown
## RQ Cache Audit Checklist

### Configuración
- [ ] staleTime razonable (no 0 para todo)
- [ ] gcTime >= staleTime
- [ ] retry configurado por tipo de query

### Query Keys
- [ ] Keys estructuradas y consistentes
- [ ] Factory pattern para keys complejas
- [ ] No hay keys hardcodeadas dispersas

### Invalidación
- [ ] Mutations invalidan queries correctas
- [ ] No hay over-invalidation (invalidar todo)
- [ ] Optimistic updates donde corresponde

### Performance
- [ ] Prefetch en navegación crítica
- [ ] enabled para queries condicionales
- [ ] select para transformar data

4. Matriz de Cache

QuerystaleTimegcTimeRazón
user profile5min10minCambia poco
houses list1min5minUpdates frecuentes
notifications30s2minTiempo real importante
static configInfinityInfinityNunca cambia

5. Problemas Comunes

javascript
// ❌ staleTime: 0 (refetch siempre)
useQuery({ queryKey: ['data'], queryFn: fetch, staleTime: 0 });

// ❌ Invalidar todo
queryClient.invalidateQueries(); // Sin filtro

// ❌ Keys inconsistentes
['houses', id] vs ['house', id] vs ['getHouse', id]

Output Esperado

markdown
## React Query Cache Audit

### Configuración Global
- staleTime: Xms
- gcTime: Yms
- retry: Z

### Queries Analizadas
| Query | Config | Issue |
|-------|--------|-------|
| houses | staleTime: 0 | ⚠️ Refetch excesivo |
| user | OK | ✅ |

### Recomendaciones
1. Aumentar staleTime de houses a 60s
2. Implementar query key factory
3. Añadir prefetch en HomeScreen