Code Commands

Commands para explicar, simplificar y transformar código.


/explain

Explica código seleccionado en detalle con contexto y ejemplos.

Uso

/explain

Aplicar sobre código seleccionado o pegado en el chat.

¿Qué hace?

  1. Analiza el código proporcionado
  2. Identifica conceptos clave
  3. Explica la lógica paso a paso
  4. Proporciona contexto sobre patrones usados
  5. Incluye ejemplos de uso si aplica

Ejemplo

// Código a explicar
const debounce = (fn, delay) => {
  let timeoutId;
  return (...args) => {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => fn.apply(this, args), delay);
  };
};

Output:

Esta función implementa el patrón debounce, que retrasa la ejecución de una función hasta que pase un tiempo sin nuevas llamadas.

Cómo funciona:

  1. Mantiene un timeoutId en closure
  2. Cada llamada cancela el timeout anterior
  3. Solo ejecuta fn si pasan delay ms sin nuevas llamadas

Uso común: Inputs de búsqueda, resize handlers, scroll events.


/simplify

Simplifica y refactoriza código complejo.

Uso

/simplify

¿Qué hace?

  1. Analiza el código proporcionado
  2. Identifica complejidad innecesaria
  3. Aplica principios KISS
  4. Propone versión simplificada
  5. Explica los cambios

Criterios de simplificación

  • Reducir nesting
  • Eliminar código muerto
  • Extraer funciones helper
  • Simplificar condicionales
  • Usar features del lenguaje apropiadamente

Ejemplo

Antes:

function getStatus(user) {
  if (user !== null && user !== undefined) {
    if (user.isActive === true) {
      if (user.role === 'admin') {
        return 'admin-active';
      } else {
        return 'user-active';
      }
    } else {
      return 'inactive';
    }
  } else {
    return 'unknown';
  }
}

Después:

function getStatus(user) {
  if (!user) return 'unknown';
  if (!user.isActive) return 'inactive';
  return user.role === 'admin' ? 'admin-active' : 'user-active';
}

/translate

Traduce código entre lenguajes de programación.

Uso

/translate to:python
/translate to:typescript
/translate to:go

Lenguajes soportados

  • JavaScript / TypeScript
  • Python
  • Go
  • Java
  • Rust
  • Ruby
  • C# / F#
  • Y más…

¿Qué hace?

  1. Analiza el código fuente
  2. Identifica patrones e idioms
  3. Traduce a idioms del lenguaje destino
  4. Adapta tipos y estructuras
  5. Agrega comentarios sobre diferencias

Ejemplo

Input (JavaScript):

const users = data.filter(u => u.active).map(u => u.name);

Output (Python):

users = [u.name for u in data if u.active]

Output (Go):

var users []string
for _, u := range data {
    if u.Active {
        users = append(users, u.Name)
    }
}

Notas

  • La traducción preserva la lógica pero usa idioms nativos
  • Tipos se infieren o adaptan según el lenguaje destino
  • Se agregan imports/dependencies necesarias

Referencia rápida

# Explicar código
/explain

# Simplificar código complejo
/simplify

# Traducir a otro lenguaje
/translate to:python
/translate to:go
/translate to:typescript