O

finding-duplicate-functions

por obra

Usa la skill finding-duplicate-functions para identificar duplicados semánticos: funciones que hacen lo mismo con nombres o implementaciones distintas. Está pensada para codebases de JavaScript o TypeScript generadas por LLM y de crecimiento rápido, y sirve para finding-duplicate-functions en revisión de código, planificación de consolidaciones y limpieza antes de refactors.

Estrellas0
Favoritos0
Comentarios0
Agregado9 may 2026
CategoríaCode Review
Comando de instalación
npx skills add obra/superpowers-lab --skill finding-duplicate-functions
Puntuación editorial

Esta skill obtiene 78/100, lo que la convierte en una opción sólida para el directorio si necesitas un flujo repetible para encontrar funciones duplicadas semánticamente. El repositorio ofrece un caso de uso claro, un proceso en varios pasos y scripts de apoyo que reducen la incertidumbre frente a un prompt genérico; aun así, sigue siendo bastante especializada y le faltan un comando de instalación y documentación operativa más amplia.

78/100
Puntos fuertes
  • Disparador claro: diseñada explícitamente para auditar codebases en busca de funciones duplicadas semánticamente, especialmente en codebases generadas por LLM.
  • Flujo concreto: extraer -> categorizar -> dividir -> detectar -> reportar, con scripts vinculados a cada paso.
  • Buena guía operativa: incluye sugerencias de herramienta/modelo (haiku para la categorización, opus para el análisis semántico) y expectativas de salida.
Puntos a tener en cuenta
  • Alcance limitado: se centra en el análisis de funciones en TypeScript/JavaScript, por lo que puede no encajar en codebases que no sean JS.
  • No incluye comando de instalación ni documentación de configuración más amplia en SKILL.md, así que los usuarios deben inferir cómo integrar los scripts en su flujo de trabajo.
Resumen

Descripción general de la habilidad finding-duplicate-functions

La habilidad finding-duplicate-functions te ayuda a detectar funciones que hacen lo mismo aunque tengan nombres o implementaciones distintas. Es especialmente útil al revisar código generado por LLM o bases de código que crecen rápido, donde la duplicación semántica se acumula antes que la duplicación por copia y pega. Si buscas finding-duplicate-functions for Code Review, esta habilidad está pensada para decisiones de consolidación, no para pulir detalles de estilo.

Para qué sirve esta habilidad

Esta habilidad finding-duplicate-functions está diseñada para identificar casos de “misma intención, código distinto”: helpers que se solapan, utilidades que se volvieron a crear o lógica casi equivalente dispersa entre archivos. Resulta especialmente útil antes de refactors, durante limpiezas de código o después de que herramientas de duplicados sintácticos como jscpd ya hayan tratado las copias exactas.

Quién debería instalarla

Instala la habilidad finding-duplicate-functions si revisas repositorios de JavaScript o TypeScript con muchas utilidades pequeñas, archivos generados o múltiples contribuidores. Encaja muy bien cuando quieres una forma repetible de decidir si funciones deben fusionarse, mantenerse separadas o investigarse más a fondo.

Qué la hace diferente

Su principal diferenciador es el flujo de trabajo en dos fases: primero extrae funciones y luego las agrupa por intención con análisis LLM. Eso significa que la habilidad está pensada para reducir la incertidumbre sobre duplicados semánticos, no solo para detectar líneas que coinciden. En la práctica, te acorta el camino desde “este código parece redundante” hasta un plan de consolidación revisable.

Cómo usar la habilidad finding-duplicate-functions

Instala y ubica el flujo de trabajo

Usa la ruta de instalación del repositorio desde el directorio de la skill: npx skills add obra/superpowers-lab --skill finding-duplicate-functions. Después de instalarla, empieza por skills/finding-duplicate-functions/SKILL.md y luego revisa los scripts auxiliares en skills/finding-duplicate-functions/scripts/, porque ahí se define la secuencia real de análisis. Para una guía de finding-duplicate-functions, esos scripts importan más que la introducción en prosa.

Qué entrada necesita la habilidad

La habilidad funciona mejor cuando le das un directorio de origen y un objetivo de revisión concreto. Las entradas sólidas mencionan el área de código, el motivo del análisis y cualquier exclusión. Por ejemplo: “Analiza packages/api/src para encontrar helpers de validación duplicados antes de fusionar los flujos de auth; ignora los archivos de test y reporta solo candidatos con alta confianza.” Eso es mejor que “encuentra duplicados” porque define alcance, intención y expectativas de salida.

Lee primero estos archivos

Prioriza scripts/extract-functions.sh, scripts/categorize-prompt.md, scripts/find-duplicates-prompt.md, scripts/prepare-category-analysis.sh y scripts/generate-report.sh. Estos archivos muestran el patrón exacto de uso de finding-duplicate-functions: extraer un catálogo, categorizar funciones, dividir por categoría, ejecutar comparación semántica y, al final, generar un informe. Si solo vas a leer un archivo, revisa SKILL.md junto con scripts/extract-functions.sh para entender la forma de entrada y las exclusiones.

Consejos de flujo de trabajo que cambian los resultados

Trata la fase de categorización como un filtro, no como un detalle secundario. La habilidad es más precisa cuando las categorías son coherentes y tienen suficientes funciones para comparar, porque la detección de duplicados se ejecuta por categoría. Excluir los tests por defecto suele ser lo correcto para limpieza de producción, pero inclúyelos si tu objetivo de revisión son utilidades compartidas de test o helpers de fixtures. Usa el informe generado como una lista corta para revisión humana, no como un plan automático de refactor.

Preguntas frecuentes sobre la habilidad finding-duplicate-functions

¿Es mejor que un prompt normal?

Sí, cuando quieres un flujo reproducible para detectar intención de funciones duplicadas en lugar de una respuesta puntual de lluvia de ideas. Un prompt normal puede pasar por alto el control de alcance, la selección de archivos y los umbrales de confianza. La habilidad finding-duplicate-functions te da un flujo de trabajo y una estructura de salida más fáciles de repetir en code review.

¿Reemplaza a las herramientas de duplicados sintácticos?

No. Las complementa. Las herramientas sintácticas detectan código copiado; esta habilidad detecta funciones semánticamente similares aunque la implementación cambie. Si tu base de código ya tiene problemas de copias exactas, resuélvelos primero para que el análisis semántico se mantenga enfocado.

¿Es apta para principiantes?

Sí, si puedes apuntarla a un árbol de código fuente y describir qué debe revisarse. Lo principal que un principiante debe saber es que la detección de duplicados se basa en categorías y depende de límites de entrada bien definidos. Si tienes dudas, empieza por un paquete o una zona funcional concreta en lugar de todo el repositorio.

¿Cuándo no debería usarla?

No la uses cuando necesites asesoramiento arquitectónico amplio, corregir un bug puntual o un resumen general de la base de código. Tampoco encaja bien si tu repositorio es mayoritariamente de código no JS/TS, porque el script de extracción está orientado a patrones de funciones de JavaScript y TypeScript. Si tu objetivo es solo encontrar copias exactas, basta con un detector de copia y pega más simple.

Cómo mejorar la habilidad finding-duplicate-functions

Acota mejor el alcance y define un objetivo de decisión más claro

La mayor mejora de calidad viene de reducir la superficie de revisión y decir con claridad qué acción quieres. En vez de pedir todos los duplicados, pide “puntos candidatos de consolidación en src/utils con sesgo hacia fusiones de alta confianza”. Eso mejora el uso de finding-duplicate-functions porque el modelo puede comparar funciones que realmente compiten entre sí.

Aporta los casos de contraste adecuados

Si ya sospechas de algunos pares, inclúyelos en el prompt como posibles coincidencias y señala en qué podrían diferir. Ejemplo: “Compara parseUserInput, normalizeInput y sanitizeInput; pueden solaparse, pero una gestiona escape HTML.” Esto ayuda a la habilidad a distinguir duplicados reales de helpers cercanos que solo comparten vocabulario.

Vigila los modos de fallo habituales

El principal modo de fallo es el sobregrouping: funciones con nombres parecidos pero reglas de negocio distintas se fusionan con demasiada agresividad. El segundo es el under-grouping: pequeños wrappers se tratan como distintos cuando solo cambian por la forma de los parámetros o por el nombre. En ambos casos, añade contexto sobre entradas, salidas y comportamiento esperado para que la revisión juzgue la intención, no solo la similitud superficial.

Itera desde el informe hasta el refactor

Después de la primera pasada, usa el informe para elegir una categoría y verificar manualmente los grupos de mayor confianza contra el código fuente. Si un grupo está en zona gris, ajusta la categoría o vuelve a ejecutar con mejores líneas de contexto y un umbral de recomendación más claro. La mejor guía de finding-duplicate-functions es iterativa: usa la salida inicial para refinar el alcance y luego vuelve a ejecutar sobre el siguiente tramo de la base de código.

Calificaciones y reseñas

Aún no hay calificaciones
Comparte tu reseña
Inicia sesión para dejar una calificación y un comentario sobre esta skill.
G
0/10000
Reseñas más recientes
Guardando...