Skip to content

Latest commit

 

History

History
145 lines (100 loc) · 5.02 KB

File metadata and controls

145 lines (100 loc) · 5.02 KB

需求规格

一、目标用户

典型画像:

  • 个人用户,单台 Windows / Mac 主力机
  • 硬盘内容业务混杂:游戏、开发环境、视频、文档、临时下载,统统堆在一起
  • 已经用过 WizTree / TreeSize / CCleaner 等工具,它们解决不了核心痛点(详见 PRIOR-ART.md)

非目标用户:

  • 服务器运维(他们用 du、ncdu)
  • 企业 IT(他们有专业资产管理平台)
  • 数据中心容量规划

二、核心需求

一句话表述

"我要的不是清垃圾工具,是磁盘资产盘点工具。"

需求拆解(总览表)

维度 说明
要识别什么 按业务类别(不是文件扩展名)识别:游戏 / 开发环境(venv、node_modules、Docker 镜像、模型权重) / 视频媒体 / 文档资料 / 应用程序 / 缓存残留
要给我什么 每个类别 = 在哪里 + 占多少 + 是不是可以删
怎么删 半自动:工具负责分类和定位,我负责勾选,不需要全 AI 自动决策
明确不要 ① 只清系统垃圾(CCleaner 类) ② 只找重复文件 ③ 只画树状图让我自己猜(WizTree 类) ④ 数据恢复
底层痛点 把"看到一个陌生文件夹名 → 猜它是干啥的 → 决定能不能删"这步外包出去——这是 WizTree 工作流里最累的环节

三、详细需求展开

3.1 识别能力(分类粒度)

工具需要识别以下"业务类别"。这是初始集,后续可扩展:

A. 游戏

  • Steam 游戏(SteamLibrary/steamapps/common/*)
  • Epic Games(Epic Games/*)
  • Battle.net、GOG、Ubisoft、独立游戏启动器
  • 模拟器 ROM
  • 游戏录像/截图

B. 开发环境

  • 语言虚拟环境:venv/、.venv/、conda envs
  • 包管理缓存:node_modules/、vendor/、target/(Rust)、~/.cargo、~/.m2
  • 容器镜像:Docker / Podman 本地镜像
  • AI 模型权重:~/.cache/huggingface/、~/.ollama/、各种 .safetensors/.gguf 大文件
  • IDE 缓存:.vscode/、.idea/、JetBrains caches

C. 视频媒体

  • 电影 / 剧集(按时长 + 编码识别)
  • 录屏 / 课程视频
  • 视频素材(高码率、原始素材)

D. 文档资料

  • PDF / 学术文献
  • Office 文档
  • 笔记软件本地数据(Obsidian / Notion 缓存等)

E. 应用程序

  • 已安装软件(注册表 + 文件系统双重确认)
  • 绿色软件(只在文件系统里有的)

F. 缓存残留

  • 浏览器缓存
  • 系统临时文件
  • 已卸载软件的残留

3.2 输出能力

每个识别出的类别,工具应给出:

  1. 位置:具体路径(支持多个)
  2. 大小:占用磁盘空间(可选:同时显示文件数)
  3. 可删建议:基于多个信号给出"建议删 / 建议保留 / 不确定"
    • 信号举例:最后访问时间、是否有引用、是否有备份、文件类型
  4. 可恢复性:删除后能否重新获得
    • 例:node_modules 可重装、Steam 游戏可重下、私人视频删了就没了

3.3 删除流程(半自动)

核心原则:工具不自己决定删什么,只做"分类 + 标注 + 排序",最终由用户勾选确认。

期望流程:

1. 用户启动扫描
2. 工具生成分类报告(可能耗时几分钟)
3. 用户在报告里【按类别】浏览(不是按文件夹层级)
4. 用户勾选要删的项
5. 工具执行删除——默认走回收站,不直接擦除
6. 工具记录这次操作日志,便于回溯

3.4 非目标(明确不做)

不做的事 为什么
自动决定删什么 风险太高,用户必须保留最终决定权
仅清系统垃圾 CCleaner / Storage Sense 已做得很好
仅找重复文件 Duplicate Cleaner 等已存在;大头不在重复
仅画树状图 WizTree 已经是天花板;我们要做更上游的"语义理解"
数据恢复 4DDiG / Recuva 的领域
注册表清理 高风险,收益低

四、设计原则

  1. 安全优先:删除走回收站,可撤销;敏感路径(Windows/、Program Files/)默认不可删
  2. 本地优先:默认本地处理或本地 LLM(Ollama),云端 AI 可选(避免文件元数据外泄)
  3. 半自动是底线:任何"全自动"功能都必须能关闭
  4. 解释可见:每个分类决策都附带"为什么这样判定"——便于用户校准对工具的信任

五、成功标准(MVP 验收)

  • 在一台真实使用的电脑上完成一次完整扫描
  • 识别出至少 5 类资产,准确率 > 80%
  • "按业务类别浏览"的体验显著优于 WizTree
  • 用户能在 30 分钟内回收 ≥ 50 GB 空间(假设硬盘 ≥ 500 GB,且确实有可删内容)

六、未决问题(欢迎在 Issues 里讨论)

  1. 跨平台优先级:Windows-first 还是同步支持 macOS?
  2. AI 后端选型:云端 API(快但隐私风险)/ 本地 LLM(慢但隐私好)/ 规则 + 小模型混合?
  3. 技术栈:Tauri (Rust) / Electron (TypeScript) / 纯 CLI?
  4. 商业模型:全开源免费 / 付费 / freemium?
  5. 隐私边界:扫描结果本地存储还是不存?哪些元数据绝不能外发?