athanor
À propos
La compétence athanor effectue une transformation alchimique en quatre étapes (décomposition, purification, illumination, synthèse) pour restructurer systématiquement un code profondément enchevêtré ou hérité en des résultats optimisés et bien structurés. Elle est conçue pour des scénarios complexes tels que la modernisation de systèmes hérités, la conversion entre paradigmes, ou lorsque des méthodes de restructuration plus simples ont échoué. Le processus inclut des points de contrôle intégrés (méditer/soigner) entre les étapes pour une transformation contrôlée et incrémentale.
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)是在所有阶段维持稳定热量的熔炉。
适用场景
- 将遗留代码转化为现代、结构良好的等价物
- 重构渐进式修复不断失败的深度纠缠模块
- 将代码库从一种范式转换为另一种(过程式到函数式、单体到模块化)
- 将原始、混乱的数据处理成干净的分析数据集
- 当更简单的重构方法已停滞,需要全周期转化时
输入
- 必需:要转化的材料(文件路径、模块名称或数据源)
- 必需:期望的最终状态(目标架构、范式或格式)
- 可选:已知约束(必须保留 API、不能更改数据库模式等)
- 可选:先前失败的转化尝试及其停滞原因
步骤
第 1 步:黑化(Nigredo)——分解
将原始材料分解为其组成元素。没有什么是神圣的;一切都需要编目。
- 完整清点材料:
- 列出每个函数、类、模块或数据实体
- 映射所有依赖关系(导入、调用、数据流)
- 识别隐藏的耦合(共享全局变量、隐式状态、副作用)
- 浮现隐藏的假设:
- 代码依赖哪些未记录的行为?
- 哪些错误条件被静默吞噬?
- 存在哪些排序依赖?
- 编目反模式和技术债务:
- 上帝对象、循环依赖、复制粘贴重复
- 死代码路径、不可达分支、残余功能
- 硬编码值、魔术数字、嵌入式配置
- 产出黑化清单:每个元素、依赖关系、假设和反模式的结构化目录
预期结果: 一份完整、毫不留情的材料清单。清单应该令人不适——如果不是,分解就不够彻底。每个隐藏的假设现在都是显式的。
失败处理: 如果材料太大无法完全清点,按模块边界分解,将每个模块作为单独的炼金炉运行。如果依赖关系过于纠缠无法映射,使用 grep/Grep 追踪实际调用点,而不是依赖文档。
第 2 步:冥想(Meditate)——煅烧检查点
运行 meditate 技能以清除黑化阶段积累的假设。
- 放下黑化清单,清除心理上下文
- 锚定在输入中声明的转化目标
- 观察黑化引入了什么偏见——分解是否使某些方法看起来不可避免?
- 将任何过早的解决方案想法标记为"切线"并回到目标
预期结果: 一种清晰、无偏见的状态,准备在不被锚定到当前形态的情况下评估材料。目标感觉新鲜而非被发现所约束。
失败处理: 如果黑化的发现持续吸引注意力(一个特别糟糕的反模式、一个诱人想要保留的巧妙技巧),写下来并明确搁置。只有当目标比当前形态更清晰时才继续。
第 3 步:白化(Albedo)——净化
将本质的与偶然的分离。剥离一切不服务于目标形态的东西。
- 从黑化清单中,对每个元素分类:
- 本质的:核心业务逻辑、不可替代的算法、关键数据转换
- 偶然的:框架样板代码、旧错误的变通方案、兼容性垫片
- 有毒的:反模式、安全漏洞、死代码
- 将本质元素提取到隔离状态:
- 从框架包装器中提取核心逻辑
- 将数据转换与 I/O 分离
- 从实现中提取接口
- 完全移除有毒元素——记录什么被移除以及原因
- 对于偶然元素,确定目标形态中是否存在等价物
- 产出白化提取物:具有干净接口的净化本质逻辑
预期结果: 一组代表原始材料核心价值的纯净、隔离的函数/模块。每个部分都可以独立测试。提取物应明显小于原始材料。
失败处理: 如果本质与偶然过于交织无法分离,先引入接缝点(接口)。如果材料抗拒净化,可能需要先用 dissolve-form 处理后才能继续炼金炉流程。
第 4 步:修复(Heal)——净化评估
运行 heal 技能以评估净化是否彻底。
- 分诊白化提取物:是否还有任何东西携带有毒残留?
- 检查偏移:净化是否偏离了原始转化目标?
- 评估完整性:所有本质元素是否都已计入,还是有些被过早丢弃?
- 如需要则重新平衡:恢复被错误分类为偶然的本质元素
预期结果: 确信白化提取物是完整、干净的,且已准备好进入照明阶段。没有本质逻辑丢失;没有有毒模式残留。
失败处理: 如果评估揭示出重大缺口,带着具体缺口返回第 3 步。不要在材料不完整的情况下进入黄化阶段。
第 5 步:黄化(Citrinitas)——照明
看见目标形态。将净化的元素映射到其最优结构。
- 模式识别:识别哪些设计模式服务于净化的元素
- 数据流是否暗示管道/过滤器、事件溯源、CQRS?
- 接口是否暗示策略、适配器、外观模式?
- 模块结构是否暗示六角形、分层、微内核?
- 设计目标架构:
- 将每个本质元素映射到其新位置
- 定义组件间的接口
- 指定数据通过新结构的流动方式
- 识别必须新创建的内容(在原始材料中没有等价物):
- 统一重复逻辑的新抽象
- 替代隐式耦合的新接口
- 替代静默失败的新错误处理
- 产出黄化蓝图:从白化提取物到目标形态的完整映射
预期结果: 一份清晰、详细的蓝图,其中每个本质元素都有归属,每个接口都有定义。蓝图应该感觉不可避免——给定净化的元素,这个结构是自然的匹配。
失败处理: 如果多个有效架构相互竞争,根据输入中的约束评估每个。如果没有明确的赢家,优先选择最简单的方案并将替代方案记录为未来选项。
第 6 步:冥想(Meditate)——合成前检查点
运行 meditate 技能以准备最终合成。
- 清除黄化阶段的分析上下文
- 锚定在黄化蓝图作为合成指南
- 观察对转化的任何焦虑——有什么被赶着做吗?
- 确认准备就绪:蓝图清晰,材料已净化,约束已知
预期结果: 对需要构建什么的平静清晰。合成阶段应该是执行,而非设计。
失败处理: 如果对蓝图的疑虑持续存在,带着具体关切重访第 5 步。精炼蓝图好于在不确定中开始合成。
第 7 步:赤化(Rubedo)——合成
将净化的元素组合为其目标形态。贤者之石:运行的、优化的代码。
- 按黄化蓝图构建新结构:
- 按指定创建文件、模块和接口
- 将每个本质元素迁移到其新位置
- 实现新的抽象和接口
- 连接组件:
- 按设计连接数据流
- 通过新路径实现错误传播
- 配置依赖注入或模块加载
- 验证合成:
- 每个组件是否独立工作?(单元测试)
- 组件是否正确组合?(集成测试)
- 完整系统是否产生与原始相同的输出?(回归测试)
- 移除脚手架:
- 删除临时兼容性垫片
- 移除迁移辅助工具
- 清理对旧结构的任何剩余引用
- 产出赤化输出:嬗变后的代码,在新形态中完全运行
预期结果: 可衡量地优于原始代码的可工作代码:更少的行数、更清晰的结构、更好的测试覆盖率、更少的依赖。转化完成,旧形态可以退役。
失败处理: 如果合成揭示了蓝图中的缺口,不要打补丁——返回第 5 步(黄化)修改设计。如果个别组件失败,在尝试全面集成之前隔离并修复它们。赤化不能产出一个半转化的嵌合体。
验证清单
- 黑化清单完整(所有元素、依赖关系、假设已编目)
- 黑化/白化之间通过了冥想检查点(假设已清除)
- 白化提取物仅包含具有干净接口的本质元素
- 修复评估确认了净化的完整性
- 黄化蓝图将每个本质元素映射到目标形态
- 黄化/赤化之间通过了冥想检查点(已准备好合成)
- 赤化输出通过了与原始行为的回归测试
- 赤化输出可衡量地改进了(复杂度、耦合度、测试覆盖率)
- 没有有毒元素存活到最终输出
- 输入中的转化约束已满足
常见问题
- 跳过黑化深度:仓促的分解意味着隐藏的耦合会在合成期间浮现。要充分投入清点工作
- 保留偶然复杂性:对巧妙变通方案或"能用就别动"代码的依恋。如果不是本质的,就去掉
- 跳过冥想检查点:从一个阶段到下一个阶段的认知惯性会产生偏见。暂停是结构性的,不是可选的
- 无蓝图的合成:在黄化完成之前开始编码会产生拼凑物,而不是嬗变
- 不完整的回归测试:赤化必须重现原始行为。未测试的路径会静默中断
- 黄化期间的范围蔓延:照明阶段揭示了超出原始目标的改进机会。记下它们但不要追求——炼金炉服务于声明的转化,而不是假设的理想
相关技能
transmute— 用于单个函数或小模块的更轻量级转化chrysopoeia— 价值提取和优化(将基础代码变成黄金)meditate— 作为阶段门检查点使用的元认知清理heal— 用于净化验证的子系统评估dissolve-form— 当材料对炼金炉来说过于刚性时,先溶解adapt-architecture— 系统级迁移模式的互补方法review-software-architecture— 合成后的架构审查
Dépôt GitHub
Compétences associées
llamaguard
AutreLlamaGuard est le modèle de Meta, doté de 7 à 8 milliards de paramètres, conçu pour modérer les entrées et sorties des LLM selon six catégories de sécurité comme la violence et les discours haineux. Il offre une précision de 94 à 95 % et peut être déployé avec vLLM, Hugging Face ou Amazon SageMaker. Utilisez cette compétence pour intégrer facilement le filtrage de contenu et des garde-fous de sécurité dans vos applications d'IA.
cost-optimization
AutreCette compétence de Claude aide les développeurs à optimiser les coûts du cloud grâce au redimensionnement des ressources, aux stratégies d'étiquetage et à l'analyse des dépenses. Elle fournit un cadre pour réduire les dépenses cloud et mettre en œuvre une gouvernance des coûts sur AWS, Azure et GCP. Utilisez-la lorsque vous devez analyser les coûts d'infrastructure, redimensionner les ressources ou respecter des contraintes budgétaires.
quantizing-models-bitsandbytes
AutreCette compétence quantifie les LLMs en précision 8 bits ou 4 bits à l'aide de bitsandbytes, permettant une réduction de 50 à 75 % de la mémoire utilisée avec une perte de précision minime. Elle est idéale pour exécuter des modèles plus volumineux sur une mémoire GPU limitée ou pour accélérer l'inférence, prenant en charge des formats comme INT8, NF4 et FP4. La compétence s'intègre à HuggingFace Transformers et permet l'entraînement QLoRA ainsi que l'utilisation d'optimiseurs en 8 bits.
dispatching-parallel-agents
AutreCette compétence Claude déploie plusieurs agents pour enquêter et résoudre simultanément 3 problèmes indépendants ou plus. Elle est conçue pour des scénarios impliquant des défaillances non liées qui peuvent être résolues sans état partagé ni dépendances. La capacité fondamentale est la résolution de problèmes en parallèle, en assignant un agent par domaine problématique indépendant afin de maximiser l'efficacité.
