| name | file-tidy |
| description | Codex 文件系统整理技能。用于“整理文件、整理目录、文件归类、清理垃圾文件”等请求;先学习现有结构,再生成可审查计划,只对高置信度项目执行移动或删除。可由 $weaver-自我迭代 调用,显式调用:$file-tidy。 |
文件系统整理师(Codex)
学习现有目录结构,把明显放错位置的文件归位。不是按扩展名批量搬家,也不主动重构项目架构。
核心原则
- 默认干跑,只展示计划;用户明确批准后才移动或删除。
- 先读目标范围内适用的
AGENTS.md,其目录边界与禁止事项优先。
- 只移动到已有目录,不创建新目录;需要新结构时改为建议。
- 不覆盖同名文件,不穿越用户指定边界,不回退他人改动。
.git、.codex、.agents、依赖目录、构建缓存和凭据文件默认是安全区。
- 删除始终单独确认;版本控制中的删除优先精确处理,不用宽泛暂存或清理命令。
自定义配置格式见 references/rules-schema.md。
工作流
1. 确定范围与模式
- 用户指定目录则使用该目录,否则使用当前工作目录。
- 解析绝对路径,确认目标在授权工作区内。
- 查找从项目根到目标目录生效的
AGENTS.md。
- 检查目标根的
.tidy-rules.yaml;它只是辅助,不覆盖 AGENTS.md 或用户指令。
- 记录开始时的
git status --short,区分既有改动与本次候选。
2. 建立结构地图
只进行足以理解结构的扫描:
- 直接子目录名称与用途;
- 每个目录少量样本文件的扩展名、前缀、主题词;
- README、manifest、package 配置或模块入口提供的语义;
- Git 跟踪状态;
.tidy-rules.yaml 的目录别名、安全区、根目录保留项和垃圾规则。
不要默认递归读取大型依赖目录、二进制、密钥、数据库或用户未授权的位置。
3. 识别候选
候选仅限目标目录直接散落的文件,除非用户明确要求递归整理。
先过滤:
AGENTS.md、README、LICENSE、依赖清单、锁文件、入口文件等根目录职责文件;
.tidy-rules.yaml 的 keep_at_root;
- 安全区和隐藏基础设施;
- Git 冲突文件、正在修改的文件、无法判断所有权的并行工作产物;
- 符号链接或跨设备目标,除非用户明确允许。
垃圾规则命中的文件标记为“建议删除”,永不自动删除,也不参与归位评分。
4. 结构感知评分
对每个候选与已有目录计算依据:
| 维度 | 权重 | 证据 |
|---|
| 文件名/目录语义 | 40% | 独立词段、目录别名、共同主题 |
| 内容主题 | 40% | 导入路径、标题、少量文本样本、配置引用 |
| 同类聚集 | 20% | 同前缀、同扩展名或相互引用的文件已集中在该目录 |
附加规则:
- 内容为空、不可读或二进制时,降低置信度。
- 多个目录接近时保持原位并列为“需确认”。
- 配置、入口和工具自动发现依赖根路径时,即使名称匹配也不得移动。
- 若移动会破坏导入、脚本、文档链接或构建配置,降为建议,并列出需同步的引用。
置信度:
≥ 0.85:高置信度移动候选;
0.65–0.84:需确认;
< 0.65:保持原位。
5. 展示单次计划
## 文件整理计划
### 建议删除(必须确认)
| # | 文件 | 原因 | Git 状态 |
### 高置信度移动
| # | 源 | 目标 | 分数 | 依据 | 需更新引用 |
### 需确认
| # | 文件 | 候选目录 | 疑点 |
### 保持原位
- <文件> — <原因>
等待用户一次性确认。用户可说“确认”“只执行 #1、#3”或“除了 #2”。被 $weaver-自我迭代 调用时,把计划返回给上层,不自行执行。
6. 执行
逐项执行,每项都重新验证:
- 源文件仍存在且未在计划后变化;
- 目标目录仍存在;
- 目标文件不存在;
- 源、目标都在授权范围内;
- 移动不违反适用的
AGENTS.md;
- 使用当前操作系统的原生命令,并对路径使用字面量/正确转义。
移动后只更新计划中已识别且用户批准的引用。删除使用精确路径,执行前再次确认目标绝对路径。
7. 验证
- 所有源文件已按计划处理,目标文件内容和大小合理。
- 没有同名覆盖、意外新目录或越界改动。
- 搜索旧路径引用;有残留则报告,不擅自扩大修改范围。
- 运行与移动相关的最小构建、测试或链接检查;无法运行时说明原因。
- 比较前后
git status --short 和 git diff --name-status,确认只出现批准的路径。
特殊情况
- 无高置信度候选:报告“无需移动”,不要为了产出而整理。
- 非 Git 目录:跳过 Git 检查,使用文件清单和哈希/大小验证。
- 文件正在被占用、目标存在或计划后内容变化:停止该项并报告。
- 用户要求“自动整理”:仍不得自动删除,也不得移动中低置信度文件。