SuperAPI AI 工具集

organize-changes

编程与开发

查看项目

更新于 10-16 09:06

技能介绍

organize-changes 是一套用于 Elixir 项目的代码整理技能,目标是把分支改动触及的函数定义和测试重新归位到 organize-file 规范所确定的位置,而不是依据 diff 或调用关系随意摆放。

用途 它适用于在代码评审或提交前,对分支相对 merge-base 发生变化的 Elixir 源码与测试进行结构性整理。核心排序法则来自 organize-file/SKILL.md:涉及 LiveView 生命周期、describe/test 聚集、以及模式匹配顺序安全时不得重排子句。

主要能力 流程区分编排器(父智能体)与子智能体。编排器只做分类、git 检查与派发:先设定合并基线(BASE_BRANCH=main,用 git merge-base 取 MB),汇总已提交与工作区改动路径,过滤出 lib/、test/、apps//lib、apps//test 下的 .ex、.exs,再用逐路径 diff 判断是否触及 def/defp/defmacro 子句头或 test/describe 标题。命中者才派发;仅函数体、typespec、注释或非定义数据的改动会被跳过。编排器不编辑源码,也不在 Task 中指定 model,工作子智能体继承编排器的模型。

子智能体职责 每个候选路径由一个子智能体处理,多个文件可并行。子智能体需先读本技能再读 organize-file,确认 diff、构建候选集合、分类模块类型(Phoenix.LiveView、Phoenix.LiveComponent、普通模块或 *_test.exs),计算全模块槽位,然后整体移动候选单元。候选判定依据:函数名不同、arity 不同、子句头不同均视为候选;同名同 arity 仅函数体或注释变化则不是候选。普通模块的 defp 区域要求把所有 defp 名称(候选与非候选合并)按字典序排列,源码顺序必须与之一致,调用图不覆盖排序规则。

使用方式 调用后由编排器执行 triage 并派发;子智能体完成后按固定格式回报 path、candidates、actions、notes。若所有 worker 成功或无需处理,编排器只输出 complete,不带任何说明文字;worker 失败或无法派发时输出一行纯文本说明。

适用场景与限制 适用于 Elixir 代码库的分支改动整理,尤其是函数定义与测试位置需要遵循统一排序规范的情况。限制包括:编排器不得直接编辑源码或通过 Task 传 model;不得以满足内联为理由跳过子智能体;不得使用破坏性 git 命令(reset、checkout --);不得仅凭 name-only 清单判断候选;已处于正确全局槽位的单元不应移动(子句顺序修正除外)。若无法派发子智能体,应输出一行阻塞说明而非 complete。

价格、平台支持与更多安装细节暂未提供。