Agent-almanac athanor
git clone https://github.com/pjt222/agent-almanac
T=$(mktemp -d) && git clone --depth=1 https://github.com/pjt222/agent-almanac "$T" && mkdir -p ~/.claude/skills && cp -r "$T/i18n/es/skills/athanor" ~/.claude/skills/pjt222-agent-almanac-athanor-b114de && rm -rf "$T"
i18n/es/skills/athanor/SKILL.mdAthanor
Ejecutar una transmutación alquímica de código o datos en cuatro etapas — descomponiendo la prima materia, purificando su esencia, iluminando su forma objetivo, y sintetizando la salida refinada. El athanor es el horno que mantiene calor constante a lo largo de todas las etapas.
Cuándo Usar
- Transformar código heredado en equivalentes modernos y bien estructurados
- Refactorizar módulos profundamente enredados donde las correcciones incrementales siguen fallando
- Convertir una base de código de un paradigma a otro (procedimental a funcional, monolito a modular)
- Procesar datos crudos y desordenados en conjuntos de datos analíticos limpios
- Cuando enfoques de refactorización más simples se han estancado y se necesita una transformación de ciclo completo
Entradas
- Requerido: El material a transformar (rutas de archivos, nombres de módulos o fuentes de datos)
- Requerido: El estado final deseado (arquitectura objetivo, paradigma o formato)
- Opcional: Restricciones conocidas (debe preservar API, no puede cambiar esquema de base de datos, etc.)
- Opcional: Intentos de transformación previos fallidos y por qué se estancaron
Procedimiento
Paso 1: Nigredo — Descomposición
Descomponer la prima materia en sus elementos constituyentes. Nada es sagrado; todo se cataloga.
- Inventariar el material completamente:
- Listar cada función, clase, módulo o entidad de datos
- Mapear todas las dependencias (importaciones, llamadas, flujos de datos)
- Identificar acoplamiento oculto (variables globales compartidas, estado implícito, efectos secundarios)
- Hacer explícitas las suposiciones ocultas:
- ¿En qué comportamientos no documentados se apoya el código?
- ¿Qué condiciones de error se tragan silenciosamente?
- ¿Qué dependencias de orden existen?
- Catalogar anti-patrones y deuda técnica:
- Objetos dios, dependencias circulares, duplicación de copiar y pegar
- Caminos de código muerto, ramas inalcanzables, características vestigiales
- Valores codificados en duro, números mágicos, configuración embebida
- Producir el Inventario Nigredo: un catálogo estructurado de cada elemento, dependencia, suposición y anti-patrón
Esperado: Un inventario completo e implacable del material. El inventario debe sentirse incómodo — si no lo hace, la descomposición no es suficientemente profunda. Cada suposición oculta es ahora explícita.
En caso de fallo: Si el material es demasiado grande para inventariar completamente, descomponer por límite de módulo y tratar cada módulo como una ejecución separada del athanor. Si las dependencias están demasiado enredadas para mapear, usar
grep/Grep para rastrear los sitios de llamada reales en lugar de confiar en la documentación.
Paso 2: Meditate — Punto de control de calcinación
Ejecutar la habilidad
meditate para limpiar las suposiciones acumuladas durante el nigredo.
- Dejar de lado el inventario nigredo y limpiar el contexto mental
- Anclarse en el objetivo de transformación declarado en las Entradas
- Observar qué sesgos introdujo el nigredo — ¿la descomposición hizo que ciertos enfoques parecieran inevitables?
- Etiquetar cualquier idea de solución prematura como "tangente" y volver al objetivo
Esperado: Un estado claro y sin sesgos listo para evaluar el material sin estar anclado a su forma actual. El objetivo se siente fresco en lugar de restringido por lo que se encontró.
En caso de fallo: Si los hallazgos del nigredo siguen atrayendo la atención (un anti-patrón particularmente malo, un hack ingenioso que es tentador preservar), escribirlo y dejarlo de lado explícitamente. Proceder solo cuando el objetivo sea más claro que la forma actual.
Paso 3: Albedo — Purificación
Separar lo esencial de lo accidental. Eliminar todo lo que no sirva a la forma objetivo.
- Del inventario nigredo, clasificar cada elemento:
- Esencial: Lógica de negocio central, algoritmos irremplazables, transformaciones de datos críticas
- Accidental: Boilerplate de framework, soluciones alternativas para bugs antiguos, shims de compatibilidad
- Tóxico: Anti-patrones, vulnerabilidades de seguridad, código muerto
- Extraer los elementos esenciales en aislamiento:
- Extraer la lógica central de los wrappers del framework
- Separar la transformación de datos de la E/S
- Extraer interfaces de las implementaciones
- Eliminar los elementos tóxicos completamente — documentar lo que se eliminó y por qué
- Para elementos accidentales, determinar si existen equivalentes en la forma objetivo
- Producir el Extracto Albedo: lógica esencial purificada con interfaces limpias
Esperado: Un conjunto de funciones/módulos puros y aislados que representan el valor central del material original. Cada pieza es testeable en aislamiento. El extracto es significativamente más pequeño que el original.
En caso de fallo: Si lo esencial y lo accidental están demasiado entrelazados para separar, introducir puntos de costura (interfaces) primero. Si el material resiste la purificación, puede necesitar
dissolve-form antes de que el athanor pueda continuar.
Paso 4: Heal — Evaluación de purificación
Ejecutar la habilidad
heal para evaluar si la purificación fue minuciosa.
- Triaje del extracto albedo: ¿algo todavía lleva residuo tóxico?
- Verificar desviación: ¿la purificación se desvió del objetivo de transformación original?
- Evaluar completitud: ¿todos los elementos esenciales están contabilizados, o algunos fueron descartados prematuramente?
- Reequilibrar si es necesario: restaurar cualquier elemento esencial que fue clasificado incorrectamente como accidental
Esperado: Confianza en que el extracto albedo está completo, limpio y listo para la iluminación. Ninguna lógica esencial se perdió; ningún patrón tóxico permanece.
En caso de fallo: Si la evaluación revela brechas significativas, volver al Paso 3 con las brechas específicas identificadas. No proceder al citrinitas con material incompleto.
Paso 5: Citrinitas — Iluminación
Ver la forma objetivo. Mapear los elementos purificados a su estructura óptima.
- Reconocimiento de patrones: identificar qué patrones de diseño sirven a los elementos purificados
- ¿El flujo de datos sugiere pipes/filters, event sourcing, CQRS?
- ¿Las interfaces sugieren strategy, adapter, facade?
- ¿La estructura de módulos sugiere hexagonal, por capas, micro-kernel?
- Diseñar la arquitectura objetivo:
- Mapear cada elemento esencial a su nueva ubicación
- Definir las interfaces entre componentes
- Especificar el flujo de datos a través de la nueva estructura
- Identificar lo que debe crearse nuevo (no tiene equivalente en el original):
- Nuevas abstracciones que unifican lógica duplicada
- Nuevas interfaces que reemplazan acoplamiento implícito
- Nuevo manejo de errores que reemplaza fallos silenciosos
- Producir el Plano Citrinitas: un mapeo completo del extracto albedo a la forma objetivo
Esperado: Un plano claro y detallado donde cada elemento esencial tiene un hogar y cada interfaz está definida. El plano debe sentirse inevitable — dados los elementos purificados, esta estructura es el ajuste natural.
En caso de fallo: Si múltiples arquitecturas válidas compiten, evaluar cada una contra las restricciones de las Entradas. Si no emerge un claro ganador, preferir la opción más simple y documentar las alternativas como opciones futuras.
Paso 6: Meditate — Punto de control pre-síntesis
Ejecutar la habilidad
meditate para prepararse para la síntesis final.
- Limpiar el contexto analítico del citrinitas
- Anclarse en el plano citrinitas como guía de síntesis
- Observar cualquier ansiedad sobre la transformación — ¿se está apresurando algo?
- Confirmar preparación: el plano es claro, el material está purificado, las restricciones son conocidas
Esperado: Claridad tranquila sobre lo que necesita construirse. La fase de síntesis debe ser ejecución, no diseño.
En caso de fallo: Si la duda persiste sobre el plano, revisitar el Paso 5 con las preocupaciones específicas. Es mejor refinar el plano que comenzar la síntesis con incertidumbre.
Paso 7: Rubedo — Síntesis
Componer los elementos purificados en su forma objetivo. La piedra filosofal: código funcional y optimizado.
- Construir la nueva estructura siguiendo el plano citrinitas:
- Crear archivos, módulos e interfaces según lo especificado
- Migrar cada elemento esencial a su nueva ubicación
- Implementar nuevas abstracciones e interfaces
- Conectar los componentes:
- Conectar flujos de datos según el diseño
- Implementar propagación de errores a través de nuevos caminos
- Configurar inyección de dependencias o carga de módulos
- Verificar la síntesis:
- ¿Cada componente funciona en aislamiento? (pruebas unitarias)
- ¿Los componentes se componen correctamente? (pruebas de integración)
- ¿El sistema completo produce las mismas salidas que el original? (pruebas de regresión)
- Remover andamiaje:
- Eliminar shims de compatibilidad temporales
- Remover ayudas de migración
- Limpiar cualquier referencia restante a la estructura antigua
- Producir la Salida Rubedo: el código transmutado, completamente funcional en su nueva forma
Esperado: Código funcional que es mediblemente mejor que el original: menos líneas, estructura más clara, mejor cobertura de pruebas, menos dependencias. La transformación está completa y la forma antigua puede retirarse.
En caso de fallo: Si la síntesis revela brechas en el plano, no parchear — volver al Paso 5 (citrinitas) para revisar el diseño. Si componentes individuales fallan, aislarlos y corregirlos antes de intentar la integración completa. El rubedo no debe producir una quimera a medio transformar.
Validación
- El inventario nigredo está completo (todos los elementos, dependencias, suposiciones catalogadas)
- El punto de control meditate pasó entre nigredo/albedo (suposiciones limpiadas)
- El extracto albedo contiene solo elementos esenciales con interfaces limpias
- La evaluación heal confirma completitud de purificación
- El plano citrinitas mapea cada elemento esencial a la forma objetivo
- El punto de control meditate pasó entre citrinitas/rubedo (listo para síntesis)
- La salida rubedo pasa pruebas de regresión contra el comportamiento original
- La salida rubedo está mediblemente mejorada (complejidad, acoplamiento, cobertura de pruebas)
- Ningún elemento tóxico sobrevivió en la salida final
- Las restricciones de transformación de las Entradas se satisfacen
Errores Comunes
- Saltarse la profundidad del nigredo: Apurar la descomposición significa que el acoplamiento oculto surge durante la síntesis. Invertir completamente en el inventario
- Preservar complejidad accidental: Apego a soluciones alternativas ingeniosas o código "funciona, no lo toques". Si no es esencial, se va
- Saltarse los puntos de control meditate: El impulso cognitivo de una etapa sesga la siguiente. Las pausas son estructurales, no opcionales
- Síntesis sin plano: Comenzar a codificar antes de que el citrinitas esté completo produce remiendo, no transmutación
- Pruebas de regresión incompletas: El rubedo debe reproducir el comportamiento original. Los caminos no probados fallarán silenciosamente
- Expansión del alcance durante citrinitas: La fase de iluminación revela oportunidades de mejora más allá del objetivo original. Anotarlas pero no perseguirlas — el athanor sirve la transformación declarada, no un ideal hipotético
Habilidades Relacionadas
— Transformación de menor peso para funciones individuales o módulos pequeñostransmute
— Extracción y optimización de valor (convertir código base en oro)chrysopoeia
— Limpieza meta-cognitiva usada como puntos de control entre etapasmeditate
— Evaluación de subsistemas usada para validación de purificaciónheal
— Cuando el material es demasiado rígido para el athanor, disolver primerodissolve-form
— Enfoque complementario para patrones de migración a nivel de sistemaadapt-architecture
— Revisión de arquitectura post-síntesisreview-software-architecture