Skip to content

feat: 文件整理 carl-file-organizer v0.3 并入 carl-skills(一页报告、三色两层、整机盘点、Windows 兼容) - #7

Merged
LearnPrompt merged 9 commits into
mainfrom
feat/carl-file-organizer-v03
Sep 2, 2026
Merged

LearnPrompt merged 9 commits into
mainfrom
feat/carl-file-organizer-v03

Conversation

@LearnPrompt

Copy link
Copy Markdown
Owner

把文件整理从独立仓库并进 carl-skills,作为 collection-native skill。

  • 一份报告:清理、整理搬动、整理后预览图在同一页,三色三个区,底部一个按钮,一份 decisions 文件
  • scan → report → apply 单入口,旧格式批准文件仍认
  • 整机只读盘点(macOS + Windows),Agent 按 references 定色写人话,处置门禁按色走(绿可清、黄只废纸篓、红只打开位置)
  • 保底层:进程占用、配置引用、symlink、worktree 检测,先写清单再动,动完校验不符原地退回,undo
  • 目录杂乱度评分 + 三色分段;Agent 说明层 notes.json
  • SKILL.md / README 活人感文案
  • 545 项 unittest(3.9/3.12 本地双绿),CI 矩阵含 windows-latest(首次跑,Windows 项按红修)

🤖 Generated with Claude Code

LearnPrompt and others added 9 commits September 2, 2026 14:13
…三色报告模板与 build_report

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CI 三平台跑起来之后,macOS 之外的两条腿红了,逐条查下来只有一条是测试自己
的问题,其余都是代码里真的假设了 macOS:

- 盘点分类看的是整条绝对路径,home 之上的目录名也算数。CI 的假 home 造在
  /tmp 底下,一个 tmp 段就把整台机器判成缓存,三色一起塌成 green。分类改成
  只看 home 以下的那一段(scoped),Windows 的 %TEMP% 在 AppData 里,同一个
  坑那边更容易踩。
- 计划里的绝对路径是会跨机器旅行的:Mac 上写的计划在 Windows 上读,字符串
  里是正斜杠,还原出来的 home 是反斜杠,隐私改写一条都没命中,报告页就会
  带着原机器的路径发出去。改写现在两种分隔符拼写都认。
- path_forms 只生成本机拼写的绝对路径。Windows 上配置文件里两种写法都有
  (Git Bash 写正斜杠,PowerShell 写反斜杠),漏一种就是漏掉一处引用。
- refuse_root 不认盘符根:REFUSED_ABSOLUTE 里只有 "/",C:\ 得靠 anchor 判。
- 中文输出撞上 Windows 重定向后的老代码页会抛 UnicodeEncodeError,被 CLI
  边界吞成退出码 2——计划明明已经写好了,报的却是失败。改成转义不可表示的
  字符,落盘的 JSON 一直是 UTF-8,不受影响。

测试侧只动平台专属能力和写死了 POSIX 口径的断言:执行位、chmod 000、
AppleScript 转义要用的引号文件名在 Windows 上做不到,按理由 skip;
os.geteuid、Path("/opt/...").is_absolute()、临时目录一定在 home 之外这三个
假设改成跨平台写法。没有为了变绿删掉任何一条断言。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@LearnPrompt
LearnPrompt merged commit 780eac3 into main Sep 2, 2026
6 checks passed
@LearnPrompt
LearnPrompt deleted the feat/carl-file-organizer-v03 branch September 2, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant