agentsclimarketplace

Limpiar duplicados

Skill eduardo-lezama/intranet-dashboard/.windsurf.bak/skills/limpiar-duplicados

Intranet dashboard based on html, css and js. Includes advance use of agentic workflows and MCP. For personal use with my own info panels, automation and IoT related stuff

Install
npx -y skills add eduardo-lezama/intranet-dashboard --skill limpiar-duplicados

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Usar al detectar código duplicado que debe consolidarse en una sola implementación

SKILL.md

3.5 KB, as published. Nobody here has run it

Cuándo usar esta skill

  • Al detectar funciones/métodos duplicados en el código
  • Cuando ruff o análisis manual identifique código repetido
  • Para consolidar lógica similar en helpers reutilizables

Contexto necesario antes de empezar

  1. Identificar las ubicaciones exactas del código duplicado
  2. Verificar que las implementaciones son idénticas o casi idénticas
  3. Determinar cuál es la versión "correcta" a mantener
  4. Verificar si hay tests que cubran el código

Pasos

1. Identificar duplicados

Buscar patrones comunes:

# Buscar funciones con mismo nombre
ruff check . --select=F811  # Redefinition of unused name

O revisar manualmente archivos grandes como dashboard.js o main.py.

2. Comparar implementaciones

  • ¿Son exactamente iguales?
  • ¿Hay diferencias menores (typos, mejoras)?
  • ¿Cuál es la versión más completa/correcta?

3. Eliminar duplicado

Opción A: Eliminar la segunda definición

// ANTES: Dos definiciones de loadInitialData()
async loadInitialData() { /* primera */ }
// ... código intermedio ...
async loadInitialData() { /* segunda - ELIMINAR */ }

// DESPUÉS: Solo una definición
async loadInitialData() { /* mantener la mejor */ }

Opción B: Extraer a función helper

// ANTES: Lógica repetida en múltiples lugares
async loadWidgetA() {
  const container = document.getElementById('a');
  if (!container) return;
  try { /* fetch y render */ }
  catch (e) { utils.handleError(e, 'A', container); }
}

async loadWidgetB() {
  const container = document.getElementById('b');
  if (!container) return;
  try { /* fetch y render similar */ }
  catch (e) { utils.handleError(e, 'B', container); }
}

// DESPUÉS: Helper reutilizable
async loadWidget(containerId, apiUrl, renderFn) {
  const container = document.getElementById(containerId);
  if (!container) return;
  try {
    const data = await utils.fetchJSON(apiUrl);
    container.innerHTML = renderFn(data);
  } catch (e) {
    utils.handleError(e, containerId, container);
  }
}

4. Verificar que no se rompe nada

ruff check .
python -c "from app import app"
# Probar en navegador

<patrones_criticos> SIEMPRE:

  • Verificar comportamiento antes y después
  • Mantener la versión más completa/correcta
  • Ejecutar validaciones después de limpiar
  • Hacer commit separado para la limpieza

NUNCA:

  • Eliminar código sin verificar que es realmente duplicado
  • Asumir que dos funciones con mismo nombre hacen lo mismo
  • Limpiar y añadir features en el mismo commit

PREFERENTEMENTE:

  • Extraer a helper si el patrón se repite 3+ veces
  • Documentar por qué se eligió una versión sobre otra
  • Usar @refactor como tipo de commit </patrones_criticos>

Duplicados conocidos en este proyecto

static/js/dashboard.js

  • loadInitialData() - líneas 24-47 y 49-72 (DUPLICADO)
  • renderDocumentsTree() - líneas 328-355 y 383-410 (DUPLICADO)
  • renderDocumentNode() - líneas 357-381 y 412-436 (DUPLICADO)

Cómo arreglarlos

  1. Eliminar la segunda definición de cada función
  2. Verificar que el dashboard funciona
  3. Commit: refactor(js): eliminar funciones duplicadas en dashboard.js

Checklist de validación

  • Duplicados identificados correctamente
  • Versión correcta mantenida
  • Segunda definición eliminada
  • ruff check . pasa
  • App funciona en navegador
  • Commit con tipo refactor

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.