用途
GitNexus Refactoring 用于在用户需要安全地重命名、抽取、拆分、移动或重组代码时提供辅助。其典型触发场景包括:“安全地重命名这个函数”“把这部分抽取成一个模块”“拆分这个服务”“把这个移动到新文件”,以及任何涉及重命名、抽取、拆分或结构调整的代码任务。
主要能力
技能提供了一组 GitNexus 工具来完成重构:
- gitnexus_rename:自动化多文件重命名,支持 dry_run 预览,会区分图编辑(高置信度)与 ast_search 编辑(需人工复核),并给出每个文件的编辑详情(行号、旧文本、新文本、置信度)。
- gitnexus_impact:映射目标的所有依赖方(direction: upstream),输出各层级的调用方以及受影响的流程。
- gitnexus_context:查看目标的全部传入/传出引用。
- gitnexus_query:查找涉及目标的执行流程。
- gitnexus_detect_changes:重构后验证实际改动,输出变更文件数、符号数、受影响流程及风险等级。
- gitnexus_cypher:自定义引用查询,例如按调用关系查找某个函数的调用者及其文件路径。
使用方式
技能给出了标准的工作流程:
- 使用 gitnexus_impact({target: "X", direction: "upstream"}) 映射所有依赖方。
- 使用 gitnexus_query({query: "X"}) 查找涉及 X 的执行流程。
- 使用 gitnexus_context({name: "X"}) 查看全部入出引用。
- 规划更新顺序:接口 → 实现 → 调用方 → 测试。
若提示“Index is stale”(索引过期),需在终端运行 npx gitnexus analyze。
针对不同重构类型,技能提供了检查清单:
- 重命名符号:先以 dry_run: true 预览全部编辑,审阅图编辑与 ast_search 编辑,满意后以 dry_run: false 应用,再用 gitnexus_detect_changes() 验证仅预期文件发生变化,最后为受影响的流程运行测试。
- 抽取模块:先用 gitnexus_context 查看引用,用 gitnexus_impact 找到所有外部调用方,定义新模块接口,抽取代码并更新导入,再执行变更检测与测试。
- 拆分函数/服务:先用 gitnexus_context 理解所有被调用者,按职责对它们分组,用 gitnexus_impact 映射需要更新的调用方,创建新函数/服务,更新调用方,执行变更检测与测试。
风险规则
- 调用方较多(>5):使用 gitnexus_rename 自动更新。
- 跨区域引用:改动后用 detect_changes 验证范围。
- 字符串/动态引用:用 gitnexus_query 查找。
- 外部/公开 API:需正确进行版本管理与废弃处理。
示例
以将 validateUser 重命名为 authenticateUser 为例:
- gitnexus_rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: true}),返回 12 处编辑,其中 10 处为图编辑(安全)、2 处为 ast_search 编辑(需复核),涉及文件包括 validator.ts、login.ts、middleware.ts、config.json 等。
- 复核 ast_search 编辑(如 config.json 中的动态引用)。
- gitnexus_rename({symbol_name: "validateUser", new_name: "authenticateUser", dry_run: false}),应用 12 处编辑,覆盖 8 个文件。
- gitnexus_detect_changes({scope: "all"}),显示受影响流程 LoginFlow、TokenRefresh,风险等级 MEDIUM,需为这些流程运行测试。
适用场景与限制
适用于需要跨文件安全重构的代码库,依赖已建立索引的 GitNexus 环境;索引过期时需先重新分析。文档未说明对具体编程语言、仓库规模或收费情况的限制与要求,相关信息暂未提供。