athanor
À propos
La compétence athanor effectue une refactorisation alchimique en quatre étapes (nigredo, albedo, citrinitas, rubedo) pour transformer systématiquement du code désordonné ou hérité en une production optimisée et bien structurée. Elle est conçue pour des scénarios complexes tels que la modernisation de systèmes hérités, la refactorisation de modules profondément enchevêtrés, ou la conversion de bases de code entre paradigmes lorsque les corrections incrémentales ont échoué. Le processus inclut des points de contrôle de méditation et de guérison entre chaque étape pour guider le cycle complet de transformation.
Installation rapide
Claude Code
Recommandénpx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/athanorCopiez et collez cette commande dans Claude Code pour installer cette compétence
Documentation
Athanor
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
transmute— Transformación de menor peso para funciones individuales o módulos pequeñoschrysopoeia— Extracción y optimización de valor (convertir código base en oro)meditate— Limpieza meta-cognitiva usada como puntos de control entre etapasheal— Evaluación de subsistemas usada para validación de purificacióndissolve-form— Cuando el material es demasiado rígido para el athanor, disolver primeroadapt-architecture— Enfoque complementario para patrones de migración a nivel de sistemareview-software-architecture— Revisión de arquitectura post-síntesis
Dépôt GitHub
Compétences associées
executing-plans
DesignUtilisez la compétence executing-plans lorsque vous disposez d'un plan de mise en œuvre complet à exécuter par lots contrôlés avec des points de contrôle de revue. Elle charge et examine le plan de manière critique, puis exécute les tâches par petits lots (3 tâches par défaut) tout en rapportant la progression entre chaque lot pour une revue par l'architecte. Cela garantit une mise en œuvre systématique avec des points de contrôle de qualité intégrés.
requesting-code-review
DesignCette compétence délègue un sous-agent réviseur de code pour analyser les modifications apportées au code par rapport aux exigences avant de poursuivre. Elle doit être utilisée après avoir terminé des tâches, implémenté des fonctionnalités majeures, ou avant une fusion vers la branche principale. La revue aide à détecter précocement les problèmes en comparant l'implémentation actuelle avec le plan initial.
connect-mcp-server
DesignCette compétence fournit un guide complet permettant aux développeurs de connecter des serveurs MCP à Claude Code via les transports HTTP, stdio ou SSE. Elle couvre l'installation, la configuration, l'authentification et la sécurité pour intégrer des services externes tels que GitHub, Notion et des API personnalisées. Utilisez-la lors de la configuration d'intégrations MCP, de la configuration d'outils externes ou du travail avec le Protocole de Contexte de Modèle de Claude.
web-cli-teleport
DesignCette compétence aide les développeurs à choisir entre les interfaces Web et CLI de Claude Code en fonction de l'analyse des tâches, puis permet une téléportation transparente des sessions entre ces environnements. Elle optimise le flux de travail en gérant l'état et le contexte de la session lors du passage entre le web, la CLI ou le mobile. Utilisez-la pour des projets complexes nécessitant différents outils à diverses étapes.
