From check-performance
Analisis de rendimiento adaptado al stack multi-tecnologia de Proportione.
How this skill is triggered — by the user, by Claude, or both
Slash command
/check-performance:check-performanceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Analisis de rendimiento adaptado al stack multi-tecnologia de Proportione.
Analisis de rendimiento adaptado al stack multi-tecnologia de Proportione. Cubre backend (Python/PHP), frontend (React/Nuxt), web (Lighthouse/Web Vitals) e infraestructura (GCP, Terraform).
Target: $ARGUMENTS (URL, proyecto, directorio, o ficheros especificos)
This skill references external paths. Set these environment variables or replace inline:
$WP_QA_DIR — WordPress shared QA framework (e.g. /path/to/Wordpress/_comun/qa)Segun $ARGUMENTS, determinar:
Usar el framework @wp-qa/shared que ya tiene performance.js:
# Ejecutar medicion programatica
cd $WP_QA_DIR
node -e "
const { measureWebVitals, checkPerformanceBudget } = require('./lib/performance');
// Requiere Playwright page object — usar via Playwright MCP
"
O medir manualmente via Playwright MCP:
performance.getEntriesByType('navigation') para TTFBPresupuestos por tipo de sitio:
| Metrica | WordPress | Aviaria PWA | porqueviven |
|---|---|---|---|
| LCP | < 2.5s | < 2.0s | < 2.5s |
| INP | < 200ms | < 150ms | < 200ms |
| CLS | < 0.1 | < 0.05 | < 0.1 |
| TTFB | < 800ms | < 400ms | < 600ms |
Si Lighthouse CLI esta disponible:
lighthouse $URL --output json --output-path /tmp/lighthouse-report.json \
--chrome-flags="--headless --no-sandbox" \
--only-categories=performance
Buscar el patron: loop que hace una query por iteracion.
# PATRON N+1 — buscar esto:
for item in items:
related = db.query(Related).filter_by(item_id=item.id).first() # N+1!
# FIX: eager loading o query batch
related_map = {r.item_id: r for r in db.query(Related).filter(Related.item_id.in_(ids))}
Verificar:
for.*: seguido de .query( o execute()SELECT * donde solo se necesitan 2-3 columnas?CREATE INDEX ... USING GIST)await correctamente? (no bloquear el event loop)with open() y cierran correctamente?# React (Aviaria PWA)
cd apps/frontend-pwa
npm run build 2>&1 | tail -20 # Ver tamanos de chunks
# Nuxt (porqueviven)
npx nuxi analyze # Genera reporte de bundle
Verificar:
import _ from 'lodash' vs import { debounce } from 'lodash')React.lazy() / defineAsyncComponent() para rutas pesadas?React.memo()?useEffect tiene dependencias correctas? (ni de mas ni de menos)useMemo/useCallback donde el calculo es costoso?v-once para contenido estatico?{ deep: true } solo cuando es necesario?Ademas de Web Vitals (PASO 2):
wp db optimize --ssh=[host])# Cloud Run: verificar CPU/memory allocation vs usage
gcloud run services describe [service] --region=[region] --format=json | \
jq '.spec.template.spec.containers[0].resources'
# Cloud SQL: verificar tier vs usage
gcloud sql instances describe [instance] --format="value(settings.tier)"
## Performance Review — [proyecto/URL] — [fecha]
### Resumen
[Semaforo: RAPIDO / ACEPTABLE / LENTO]
[1-2 frases con el principal cuello de botella]
### Web Vitals (si aplica)
| Metrica | Valor | Presupuesto | Estado |
|---------|-------|-------------|--------|
| LCP | Xs | <2.5s | OK/FAIL |
| INP | Xms | <200ms | OK/FAIL |
| CLS | X | <0.1 | OK/FAIL |
| TTFB | Xms | <800ms | OK/FAIL |
### Lighthouse (si aplica)
- Performance: X/100
- Oportunidades: [lista de recomendaciones de Lighthouse]
### Hallazgos de codigo
1. **[fichero:linea]** — [problema de rendimiento]
- Impacto estimado: [alto/medio/bajo]
- Fix: [codigo o descripcion]
### Recomendaciones priorizadas
1. [Quick win — mayor impacto con menor esfuerzo]
2. [Siguiente]
3. [Siguiente]
### Coste de infraestructura (si aplica)
- Actual: X EUR/mes
- Optimizado: X EUR/mes
- Ahorro: X EUR/mes
performance.js de @wp-qa/shared ya mide LCP, CLS, TTFB. Reutilizarlo.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub proportione/proportione-plugins --plugin check-performance