Heredar Estilo Heredado
Evita la deriva de estilo de código de IA en proyectos heredados escaneando el código fuente en busca de convenciones implícitas en 4 dimensiones meta-arquitectónicas, resolviendo conflictos con el usuario uno a la vez, y cristalizando el consenso en un archivo .ai-style-rules.md ejecutable. Completamente agnóstico en cuanto a lenguaje y framework.
Cuándo Activar
- El usuario escribe
/inherit-legacy-style - El usuario menciona la incorporación de IA en un proyecto heredado escrito a mano
- El usuario está preocupado porque el código generado por IA "se desvíe" de las convenciones existentes del proyecto
- El usuario quiere extraer y codificar las reglas de codificación implícitas de su proyecto
Cuándo Usar
Usa esta habilidad cuando necesites preservar el estilo de un proyecto heredado y evitar la deriva de estilo generada por IA. Consulta Cuándo Activar arriba para las condiciones desencadenantes.
Prerrequisitos
- Git (recomendado; proyectos sin Git usan marcas de tiempo de archivo para el modo incremental)
- Acceso de lectura/escritura a la raíz del proyecto (genera
.ai-style-rules.mdy opcionalmenteCLAUDE.md)
Flujo de Trabajo
Paso 0 — Modo de Detección Automática
Verifica silenciosamente la existencia de .ai-style-rules.md en la raíz del proyecto:
| ¿Existe el archivo? | Modo |
|---|---|
| No | Rama A — Escaneo Completo por Primera Vez |
| Sí | Rama B — Olfateo Incremental |
Anuncia el modo en una línea y continúa — nunca pidas al usuario que elija.
Rama A — Escaneo Completo por Primera Vez
1. Medir escala, elegir un nivel de escaneo
git ls-files | grep -cE '\.(js|ts|jsx|tsx|vue|py|go|rs|java|kt|rb|php|cs|swift|c|cpp|h)$'
| Nivel | Archivos fuente | Estrategia |
|---|---|---|
| Pequeño | ≲ 50 | Lectura completa de cada archivo fuente |
| Mediano | 50–500 | Capa de infraestructura = lectura completa; capa de negocio = muestra 2–3 por dimensión |
| Grande | ≳ 500 | Muestreo estricto + límite de presupuesto; resumen --stat primero, luego lecturas dirigidas |
2. Escanear en 4 dimensiones
- Anatomía del Archivo — orden de declaración dentro del archivo (importaciones → tipos → lógica principal → ayudantes → exportación)
- Estado y Flujo de Control — convenciones de nomenclatura para estado asíncrono, paginación, banderas
- Infraestructura — dónde viven las utilidades transversales (interceptores, formateadores, middleware)
- Manejo de Errores — try/catch vs interceptor global vs retorno Result; hábitos de comprobación de nulos
3. Aplicar reducción de ruido por umbral de señal
Antes de interrumpir al usuario, evalúa la intensidad de la señal:
- Señal débil → suprimir automáticamente: minoría <5% Y cuenta <10 → la mayoría gana, la minoría pasa a NO HACER
- Señal fuerte → interrogar: división casi pareja, o bifurcación semántica en una dimensión central
- Excepción de proyecto pequeño: fuentes ≲50, "3 contra 2" NO es mayoría → interrogar
4. Resolver conflictos uno a la vez (Protocolo de Interrogatorio)
Para cada conflicto de señal fuerte, presenta EXACTAMENTE UNA pregunta con 4 opciones:
Evidencia:
pathAusa estilo X,pathBusa estilo Y ADVERTENCIA: Riesgo: mezclar ambos fragmenta el estilo del proyecto Elige:1seguir X2seguir Y3esto es evolución, actualizar reglas4tengo una nueva regla
Suspende hasta que el usuario responda, luego continúa con el siguiente conflicto. Nunca acumules preguntas.
5. Generar .ai-style-rules.md con tres secciones obligatorias:
- [Archivos Dorados] — rutas de ejemplares reales anotadas con lo que demuestran
- [Reglas de Nomenclatura y Control de Estado] — convenciones concretas y verificables
- [NO HACER] — antipatrones que no deben propagarse
6. Instalar el gancho persistente
Pregunta al usuario la fuerza de aplicación (usa AskUserQuestion):
| Opción | Mecanismo |
|---|---|
| 1 Gancho suave (recomendado) | Escribe la referencia @.ai-style-rules.md en el archivo CLAUDE.md del proyecto |
| 2 Gancho duro | Gancho suave + Gancho `PreToolUse[Write |
| 3 Sin gancho | Mantén el archivo de reglas; el usuario lo referencia manualmente |
Rama B — Olfateo Incremental
- Lee el
.ai-style-rules.mdexistente; si tiene una huella de commit,git diff <último_hash> HEAD --statpara identificar el delta - Lee los cambios recientes de Git (
git log -3 --stat→ inspecciona archivos sospechosos bajo demanda) - Para diffs sobredimensionados (>cientos de archivos): solo resumen
--stat+ muestra los cambios más grandes - Compara el código nuevo con las reglas registradas → los conflictos pasan por el Protocolo de Interrogatorio
- Agrega un registro de evolución al final de
.ai-style-rules.md(nunca sobrescribas reglas antiguas)
Aplicación por Turno
Cuando .ai-style-rules.md está en contexto (cargado mediante CLAUDE.md), cada tarea de escritura de código debe comenzar con una declaración de cumplimiento en la cadena de razonamiento, nombrando el ejemplar que se sigue y los NO HACER que se evitan.
Cómo Funciona
Esta habilidad detecta automáticamente si es una ejecución por primera vez o incremental mediante la presencia de .ai-style-rules.md:
- Por primera vez (Rama A) — Mide la escala del proyecto, escanea el código fuente en 4 dimensiones meta-arquitectónicas (Anatomía del Archivo, Estado y Flujo de Control, Infraestructura, Manejo de Errores), aplica reducción de ruido por umbral de señal para suprimir conflictos débiles, resuelve conflictos de señal fuerte uno a la vez con el usuario, genera
.ai-style-rules.mdcon Archivos Dorados / Reglas de Nomenclatura / NO HACER, y ofrece ganchos de aplicación opcionales. - Incremental (Rama B) — Lee las reglas existentes, verifica diferencias recientes de Git en busca de patrones nuevos o conflictivos, ejecuta el mismo protocolo de interrogatorio uno a la vez para cualquier conflicto encontrado, y agrega registros de evolución sin sobrescribir las reglas existentes.
- Aplicación por Turno — Cuando está enganchado mediante
CLAUDE.md, cada tarea de escritura de código comienza con una declaración de cumplimiento que nombra el ejemplar seguido y los NO HACER evitados.
Especificación de Salida
.ai-style-rules.mden la raíz del proyecto (con huella de commit + nivel de escala en el encabezado)- Opcionalmente
CLAUDE.mdcon una referencia@.ai-style-rules.md - Registros de evolución agregados como entradas
### [AAAA-MM-DD] Registro de Evolución de Estilo
Antipatrones
- FALLO: NO omitas el paso de medición de escala — muestrear un proyecto de 30 archivos lo "desnutre"; escanear completamente un repositorio de 5000 archivos explota
- FALLO: NO acumules múltiples preguntas de conflicto a la vez — el interrogatorio es estrictamente uno a la vez
- FALLO: NO sobrescribas reglas antiguas en modo incremental — siempre agrega registros de evolución
- FALLO: NO asumas el "gancho duro" sin preguntar — la fuerza de aplicación es decisión del usuario
- FALLO: NO juzgues la sintaxis ni la calidad de la pila tecnológica — esta habilidad solo alinea la meta-arquitectura
- FALLO: NO copies errores de los archivos ejemplares — reutiliza la estructura, señala defectos
Mejores Prácticas
- Anuncia el modo detectado (por primera vez vs incremental) y el nivel de escala en una línea antes de escanear
- Para proyectos grandes, lee primero los resúmenes
--stat, luego lecturas dirigidas conReaden archivos sospechosos - Deja que el umbral de señal maneje el ruido — una división de nomenclatura de 843 contra 8 debe resolverse automáticamente sin interrupción del usuario
- Si dudas sobre la intensidad de la señal, inclínate por preguntar
- El gancho suave de
CLAUDE.md(@.ai-style-rules.md) suele ser suficiente; el gancho duro solo si el usuario quiere aplicación mecánica
Habilidades Relacionadas
init— inicializa un nuevoCLAUDE.mdcon documentación del código basecode-review— revisa diferencias por corrección y problemas de estilosimplify— revisa código en busca de oportunidades de reutilización y simplificación
Ejemplos
-
Incorporación por primera vez
- Usuario: "Ayúdame a incorporar IA a este código base antiguo sin cambiar su estilo."
- Acción: Ejecutar escaneo completo Rama A → medir escala → escanear 4 dimensiones → interrogar conflictos → generar
.ai-style-rules.md→ ofrecer fuerza de gancho (suave/duro/ninguno).
-
Actualización incremental después de cambios en el equipo
- Usuario: "Agregamos un nuevo módulo; mantén intactas las reglas de estilo existentes."
- Acción: Ejecutar olfateo incremental Rama B → comparar deltas de Git con las reglas registradas → interrogar cualquier conflicto nuevo → agregar registro de evolución sin sobrescribir.
-
Aplicación de NO HACER mediante CLAUDE.md
- Usuario: "Asegúrate de que todo el código nuevo se mantenga consistente con las reglas del proyecto."
- Acción: Gancho suave instalado →
.ai-style-rules.mdse carga automáticamente cada sesión → cada tarea de escritura de código comienza con declaración de cumplimiento, reutilizando patrones ejemplares y evitando NO HACER.