Skip to main content

9009-multi-iteration

Patrón genérico para ejecutar mejoras 9009 en múltiples iteraciones sobre cualquier proyecto — análisis rápido, plan de mejoras, implementación directa con patch/write_file, y verificación. Optimizado para ejecución directa (NO subagentes) en batches de 20 mejoras.

설치로 이동

소스 정보

저장소
Ntizar/NtizarBrainMasterMind
최근 소스 활동
2026년 6월 26일 12:05
감지된 SKILL.md 언어
스페인어
스타
2
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
9009-multi-iteration
description
Patrón genérico para ejecutar mejoras 9009 en múltiples iteraciones sobre cualquier proyecto — análisis rápido, plan de mejoras, implementación directa con patch/write_file, y verificación. Optimizado para ejecución directa (NO subagentes) en batches de 20 mejoras.
version
1.0.0
author
Ntizar
tags
["software-development",9009,"improvement","iteration"]
# 9009 Multi-Iteration — Mejora Continua Genérica Patrón para ejecutar mejoras continuas en cualquier proyecto, con ejecución directa y múltiples iteraciones. ## 🎯 Cuándo usar - Cuando el usuario pide "mejorar X proyecto" o "hacer Y procesos 9009" - Cuando hay un proyecto existente que puede evolucionar - Cuando se quiere un pipeline de mejora continua sin configurar cron ## ⚡ Patrón de ejecución (directo, NO subagentes) ### Regla de oro: Implementar directamente con patch/write_file **Los subagentes FALLAN con timeout** en tareas de código extenso. Siempre implementar directamente. ### Flujo de 5 pasos: ``` 1. Explorar proyecto → estructura, stack, archivos clave 2. Analizar → qué existe ya, qué falta, qué puede mejorarse 3. Planificar → lista de mejoras priorizadas (baja→alta dificultad) 4. Implementar → patch/write_file directo en archivos existentes 5. Commit + push → deploy automático si es NaN ``` ### Paso 1: Exploración rápida ```bash # Estructura find . -not -path './.git/*' -not -path './node_modules/*' -not -path './__pycache__/*' | head -50 # Stack cat package.json # o pyproject.toml, Cargo.toml, requirements.txt # Archivos principales cat README.md cat index.html # o main.py, app.js, etc. ``` ### Paso 2: Análisis de estado actual Leer los archivos clave para saber qué ya existe: - ¿Qué tabs/features ya están implementadas? - ¿Qué endpoints existen? - ¿Qué dependencias tiene el proyecto? - ¿Hay tests? ¿Pasan? ### Paso 3: Generar plan de mejoras Crear lista de mejoras priorizadas: - **Baja dificultad primero** (victorias rápidas) - **Mediana dificultad** después - **Alta dificultad** al final Cada mejora debe ser **atómica** (implementable en una sesión) ### Paso 4: Implementación directa #### Patrón para proyectos frontend con tabs (esios-dashboard pattern): **Nuevo endpoint backend:** ```javascript // server.js — añadir ANTES del bloque "Start" const { buildDominioSummary } = require('./src/domains/{dominio}/{dominio}.service'); app.get('/api/esios/{dominio}', async (req, res) => { const fecha = getRequestDate(req); const cacheKey = `{dominio}:${fecha}`; let data = cache.get(cacheKey); if (!data) { data = await buildDominioSummary(fecha, env.ESIOS_TOKEN); cache.set(cacheKey, data); } res.json(data); }); ``` **Nuevo servicio backend:** ```javascript // src/domains/{dominio}/{dominio}.service.js async function buildDominioSummary(fecha, token) { // Fetch datos externos o internos // Calcular stats // Devolver objeto con stats + datos horarios + resumen } module.exports = { buildDominioSummary }; ``` **Nuevas tabs HTML:** ```html <!-- index.html — añadir button en tabs --> <button class="tab-btn" data-tab="{nombre}">🏷️ {Nombre}</button> <!-- Añadir sección antes del footer --> <div class="tab-section" id="section-{nombre}"> <div class="metrics-grid" id="{nombre}Metrics"> <div class="metric-card glass"> <div class="metric-label">{Label}</div> <div class="metric-value" id="{nombre}Value">—</div> </div> </div> <div class="charts-grid"> <div class="chart-card glass"> <h3>{Gráfico}</h3> <div class="chart-wrapper"><canvas id="chart{Nombre}"></canvas></div> </div> </div> </div> ``` **Nuevo archivo JS frontend:** ```javascript // public/js/render-{dominio}.js function render{Dominio}(data) { if (!data) return; // Actualizar métricas DOM // Crear/actualizar gráficos Chart.js } function cargarDatos{Dominio}() { fetch('/api/esios/{dominio}') .then(r => r.json()) .then(data => render{Dominio}(data)) .catch(err => console.warn('[{dominio}] Error:', err.message)); } ``` **Integrar en tab switching (ui.js):** ```javascript // ui.js — dentro de setupTabs(), tras el bloque existente if (tab === '{nombre}') cargarDatos{Dominio}(); ``` **Incluir script en HTML (index.html):** ```html <!-- Antes de </body> --> <script src="js/render-{dominio}.js"></script> ``` #### Patrón para proyectos backend (Python/Node): 1. Crear módulo/servicio en `src/domains/{tema}/` 2. Añadir endpoints en `app.py` o `server.js` 3. Añadir tests en `tests/` 4. Commit + push ### Paso 5: Verificación y deploy ```bash cd /root/workspace/{PROYECTO} git add -A git commit -m "9009: {descripción de la mejora}" git push ``` ## 🔍 Fuentes de datos externas sin API key ### Yahoo Finance ```javascript // Sin API key, sin dependencias const url = `https://query1.finance.yahoo.com/v8/finance/chart/${TICKER}?range=30d&interval=1d`; // Parsear timestamps y quotes del JSON resultante ``` ### ESIOS/REE ```javascript // Usar convertEsiosValue() para normalizar unidades const val = convertEsiosValue(indicatorId, rawValue); ``` ## 📊 Correlación Pearson en JavaScript ```javascript function calcularCorrelacionPearson(x, y) { const pairs = []; for (let i = 0; i < x.length; i++) { if (x[i] != null && y[i] != null) pairs.push([x[i], y[i]]); } if (pairs.length < 3) return null; const n = pairs.length; const sumX = pairs.reduce((s, p) => s + p[0], 0); const sumY = pairs.reduce((s, p) => s + p[1], 0); const sumXY = pairs.reduce((s, p) => s + p[0] * p[1], 0); const sumX2 = pairs.reduce((s, p) => s + p[0] * p[0], 0); const sumY2 = pairs.reduce((s, p) => s + p[1] * p[1], 0); const num = n * sumXY - sumX * sumY; const den = Math.sqrt((n * sumX2 - sumX * sumX) * (n * sumY2 - sumY * sumY)); if (den === 0) return null; return Math.round((num / den) * 100) / 100; } function interpretarCorrelacion(r) { if (r === null) return 'Sin datos'; const abs = Math.abs(r); if (abs > 0.8) return 'Muy fuerte'; if (abs > 0.6) return 'Fuerte'; if (abs > 0.4) return 'Moderada'; if (abs > 0.2) return 'Débil'; return 'Muy débil / ninguna'; } ``` ## 📋 Lista de mejoras típicas por tipo de proyecto ### Dashboard frontend (vanilla JS + Chart.js): 1. Exportar datos a CSV 2. Modo oscuro/claro 3. Heatmap de datos 4. Indicadores de tendencia (↑↓ %) 5. Zoom/pan en gráficos 6. Timestamp + enlace fuente 7. Comparativa día anterior 8. Performance ratio 9. Widget de clima/meteo 10. Tab de correlaciones 11. Gráficos de barras apiladas 12. Histogramas de distribución 13. Métricas de impacto/ahorro 14. Mapa SVG de datos geográficos 15. Panel debalancing/reservas ### Backend API (Node.js/Python): 1. Cache por fecha/timestamp 2. Endpoints nuevos por dominio 3. Servicios por dominio (separación de responsabilidades) 4. Validación de inputs 5. Manejo de errores centralizado 6. Health check endpoint 7. Rate limiting 8. Logging estructurado ### Análisis de datos: 1. Correlación Pearson entre variables 2. Estadísticas descriptivas (media, max, min, percentiles) 3. Series temporales 4. Predicciones simples (media móvil, tendencia lineal) 5. Normalización de unidades ## ⚠️ Pitfalls 1. **NUNCA usar subagentes** para código extenso — timeout seguro 2. **Chart.js:** destruir instancia previa con `charts.{nombre}?.destroy()` antes de `new Chart()` 3. **Patch vs write_file:** si el archivo es largo (>100 líneas) y el patch es grande, usar write_file completo 4. **Siempre leer el archivo completo** antes de patchear (no usar offset/limit) 5. **Git push siempre** después de commit para deploy en NaN 6. **Cache por fecha** para evitar llamadas duplicadas a APIs externas 7. **Carga lazy por tab** — solo cargar datos cuando el usuario cambia a esa tab 8. **Todo en castellano** — commits, notas, nombres de tabs, descripciones 9. **Verificar IDs de ESIOS antes de usarlos:** Los IDs 10035-10041 NO existen. ESIOS no tiene datos de temperatura/viento/humedad. Para clima usar Open-Meteo (ver `9009-mejora-continua:references/esios-no-clima-data.md`). 10. **SIEMPRE typecheck antes de push:** `npx vue-tsc --noEmit` (Vue) o `npx tsc --noEmit` (vanilla TS). Los tests pueden pasar pero el CI falla en typecheck. Ejecutar ambos: `npx vitest run && npx vue-tsc --noEmit` antes de commit+push. ## 🚀 Ejemplo de ejecución rápida ``` # 1. Explorar find /root/workspace/{PROYECTO} -not -path '*/.git/*' -not -path '*/node_modules/*' | head -30 cat /root/workspace/{PROYECTO}/package.json # 2. Leer archivos clave read_file /root/workspace/{PROYECTO}/public/index.html read_file /root/workspace/{PROYECTO}/server.js read_file /root/workspace/{PROYECTO}/public/js/ui.js # 3. Crear servicios nuevos write_file /root/workspace/{PROYECTO}/src/domains/{dominio}/{dominio}.service.js # 4. Añadir endpoints patch /root/workspace/{PROYECTO}/server.js # añadir antes de "Start" # 5. Añadir tabs HTML patch /root/workspace/{PROYECTO}/public/index.html # añadir buttons + sections # 6. Crear render JS write_file /root/workspace/{PROYECTO}/public/js/render-{dominio}.js # 7. Integrar en tab switching patch /root/workspace/{PROYECTO}/public/js/ui.js # 8. Incluir script en HTML patch /root/workspace/{PROYECTO}/public/index.html # añadir <script> # 9. Commit + push cd /root/workspace/{PROYECTO} git add -A && git commit -m "9009: {dominio} - descripción" && git push ``` ## 📚 Referencias - `references/esios-dashboard-9009-pattern.md` — Patrón específico de esios-dashboard - `mastermind:9009-mejora-continua` — Pipeline completo con cron
GitHub에서 보기