naming-refactor 是一个用于在 Git 仓库中全面重命名与重构代码结构的技能,目标是在保留行为与对外契约的前提下,让仓库内所有名称表达统一的领域模型。其核心用途是系统性梳理目录、文件、包、模块、命名空间、导出、类型、函数、参数、变量、测试、文档、配置、脚本与 CI 中的命名,并据此调整仓库结构。
主要能力:覆盖完整 Git 仓库,不允许只处理部分文件或中途停止;允许大规模 diff、路径移动和仓库可控的接口迁移;在用户未明确授权破坏性迁移时,保留对外 API 名称、CLI 标志、环境变量、配置键、wire 字段、路由、数据库名称和导入路径;重构中发现并修复缺陷时需有明确证据和回归检查,且与重命名分开报告。
使用方式:技能附带 scripts/naming-ledger.py,通过 uv run 命令调用。先初始化账本:uv run "<skill-dir>/scripts/naming-ledger.py" init --root <repo> --ledger <scratch.json>,再用 mark、pending、refresh、summary 子命令记录与追踪每个路径的状态。账本需创建在仓库之外,路径状态包括 pending、retained、renamed、excluded、blocked。委派运行时,子代理输出 dispositions TSV,每行格式为 status<TAB>repo-relative-path<TAB>reason,再用 --from-file 批量应用。
执行流程包括:建立基线检查(格式、lint、类型、测试、构建、API 快照等);识别对外契约、反射与序列化面、动态导入等;构建重命名映射;在编辑前获取覆盖完整工作树的协调声明(如 ai-coord start 'naming refactor' '.'),仅在 READY 后继续;按依赖波次执行重命名并运行最窄的验证检查;最终刷新账本、搜索残留旧名称、对比基线与最终结果。
限制:若缺少可靠协调机制,需用户确认独占写入窗口;BLOCKED、UNKNOWN 或无路径的 INTENT 结果不授权编辑;账本存在 pending 或 blocked 路径、行为对等性未验证或对外契约需未批准的破坏时,不得报告完成。此技能要求仓库有 Git 环境并可通过 uv 运行脚本;未提供关于具体平台、收费或价格的信息。