소스 정보
- 저장소
- 2021291696/file-tidy
- 최근 소스 활동
- 2026년 6월 9일 12:56
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 0
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/2021291696/file-tidy --skill file-tidy명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | file-tidy |
| description | 文件系统整理师——结构感知归位,帮跑错地方的文件回到该去的子目录。支持干跑模式和自定义 YAML 辅助配置。独立使用或被 weaver-自我迭代 调用。 |
不是"把所有 .py 塞进 scripts/",而是学习项目已有的目录结构,把跑错地方的文件送回该去的地方。像一位细心的室友——先看家里怎么摆的,再帮你把跑偏的东西归位。
整理文件 / 整理目录 / 文件归类 / tidy / cleanup
.tidy-rules.yaml。存在则加载(辅助信息),不存在则纯靠结构感知使用 PowerShell 扫描目标目录下的直接子目录,为每个目录建立"指纹"。
构造 <safe_zone_pattern>:
.tidy-rules.yaml 且含 safe_zones:将每个 zone 的 glob 转为 regex(* → .*,? → .,其余字符用 [regex]::Escape() 转义),用 | 拼接.tidy-rules.yaml 或 safe_zones 为空:使用默认安全模式 ^(\.|node_modules)# 扫描一级子目录(排除安全区)
Get-ChildItem -Path <dir> -Directory -Depth 0 |
Where-Object { $_.Name -notmatch '<safe_zone_pattern>' } |
ForEach-Object {
$dir = $_.FullName
$files = Get-ChildItem -Path $dir -File -Depth 0 | Select-Object -First 20
[PSCustomObject]@{
Name = $_.Name
Path = $dir
SampleSize = @($files).Count # 采样数量(最多 20),不是目录总文件数。如需总文件数做比例计算,单独 Get-ChildItem 计数
Extensions = ($files | Group-Object Extension | Sort-Object Count -Desc | Select-Object -First 3).Name -join ','
Prefixes = ($files | ForEach-Object { ($_.BaseName -split '[-_]')[0] } | Group-Object | Sort-Object Count -Desc | Select-Object -First 3).Name -join ','
}
}
指纹字段含义:
.py,.csv,.md)movie,elm,weather)同时读取 .tidy-rules.yaml(如果存在)获取:
directories:目录别名(帮 AI 理解目录含义)safe_zones:绝对不碰的目录/文件模式(支持通配符 *)keep_at_root:必须留在根目录的文件junk:临时/垃圾文件清理规则用 .tidy-rules.yaml 的 junk 规则扫描目标目录,标记建议删除的文件。
注意:
junk 配置时跳过此层对目标目录下的所有直接文件(不含子目录内的文件),逐一计算它属于每个已有子目录的分数。
维度一:文件名 → 目录名匹配(权重 40%)
-、_、.、/)后的独立词段。如 movie_train 拆为 [movie, train],outputs/movie/ 提取 [outputs, movie]。共享词段越多分越高:2+个共享词段 = 40 分,1 个 = 30 分,无共享 = 看别名movie_train.py → 目录 outputs/movie/).tidy-rules.yaml directories 别名匹配:25 分
(如文件名含"前端"关键词 → frontend-design/ 目录)维度二:同源文件聚类(权重 30%)
以下子项取最高分,不累加。即同时满足多个条件时,只取最高的一项得分。
movie_report.md → 目录已有 movie_download.py)维度三:代码引用关系(权重 20%,仅代码文件)
维度四:语义兜底(权重 10%,仅当前三项总分 < 30 时触发)
仅对文本类文件(.py, .md, .txt, .js, .ts, .java, .json, .yaml, .xml, .csv, .html, .css 等)触发语义兜底。二进制文件(.pdf, .png, .zip, .exe, .dll 等)直接跳过此维度。
以下条件任一满足,则不加入移动建议:
keep_at_root 列表中. 开头)safe_zones 模式同分平局:当文件对多个目标目录得分相同且均为最高时,选择文件数更少的目录(避免把零散文件塞进已经很大的目录)。如果文件数也相同,选目录名与文件名关键词匹配度更高的。
按四档输出:
整理计划 — <目标目录绝对路径>
▌ 建议删除(N 项)
<文件> → [删除] <reason>
▌ 建议移动 — 高置信度(N 项)
<源文件路径> → <目标路径> (XX分)
▌ 建议移动 — 请确认(N 项)
<源文件路径> → <目标路径> (XX分 ⚠ <低分原因>)
▌ 未归类(N 项)
<文件> (<原因>)
已扫描 XX 个文件,建议删除 X 项,建议移动 X 项(其中 X 项需确认),未归类 X 项。
执行:整理文件 --confirm(执行全部建议移动 + 建议删除) 只看高置信度:整理文件 --safe(只执行高置信度移动 + 建议删除)
格式规则:
| 总分 | 动作 |
|---|---|
| ≥ 70 | 高置信度 — 直接建议移动 |
| 40-69 | 中置信度 — 建议移动,标注"请确认" |
| < 40 | 不处理,列入"未归类" |
展示计划后询问:
"执行整理(全部移动+删除)/ 安全模式(只动高置信度项)/ 只看归类(只移动高置信度,不删)/ 取消?"
# 检查目标目录是否存在(不存在则跳过,绝不创建新目录)
if (-not (Test-Path "<target>")) {
Write-Output "ERROR 目标目录 <target> 不存在,跳过"
continue
}
# 移动文件(不覆盖已存在的同名文件)
if (-not (Test-Path "<target>/<filename>")) {
Move-Item -Path "<source>" -Destination "<target>/<filename>"
Write-Output "OK <source> → <target>/<filename>"
} else {
Write-Output "SKIP <source> → <target>/<filename> 已存在"
}
执行完成后输出摘要:
整理完成 — 移动 X 项,跳过 Y 项(冲突),删除 Z 项,未处理 W 项
weaver 在全局整理时调用 file-tidy:
| 选项 | 行为 |
|---|---|
| (默认,无参数) | 干跑模式,只展示计划 |
--confirm | 执行全部建议移动 + 建议删除 |
--safe | 只执行高置信度移动 + 建议删除 |
--classify | 只移动高置信度,不执行删除(对应"只看归类"模式) |
--dry-run | 只出报告不动手 |
. 开头默认跳过movie_train.py 和 movie_report.md 共享前缀 movie_.tidy-rules.yaml 是辅助而非驱动——没有它也应该能完成归位判断