Rustzen 目前包含几类并不相同的项目。把它们放在一张表里,边界比“统一平台”更清楚:
| 项目 | 当前职责 | 不需要先变成什么 |
|---|---|---|
rustzen-admin |
Rust + React 的工程参考 | 所有产品必须接入的中央后台 |
| Zen Clear | 开发者的 macOS 磁盘分析与清理 | 覆盖所有系统垃圾的一键清理器 |
| Rustzen Zipper | 发布打包和 zip 归档 | 完整发布平台 |
| Rustzen Clipboard | 探索本地优先的剪贴板工具 | 先解决所有跨端同步问题 |
后台、权限、插件、多端、云同步和统一账号都可以继续扩展,但一起推进,会把个人项目迅速推成一个维护不起的平台。
产品边界来自具体问题
Zen Clear 是最明显的例子。
“清理 Mac”是一个很大的市场描述,真正落到开发者机器上,问题更具体:node_modules、Cargo target、Docker、Xcode 和 IDE 数据占了多少空间?哪些可以重建?删除后会影响哪个项目?
它不需要先覆盖所有系统垃圾,也不需要用一个黑盒按钮替用户做决定。先解释开发环境里的占用,再处理清理动作,就已经是一条完整路径。
其他项目也一样。Rustzen Zipper 不必变成发布平台,先把归档和打包做稳;Rustzen Clipboard 不必先解决跨端同步,先验证本地记录、搜索和资源占用是否值得做。
共享的是判断,不是所有代码
Rustzen 项目之间共享的是一些工程取向,而不是统一技术栈:尽量缩小运行边界、减少不必要的外部依赖,并把真实命令和仓库规则写清楚。SQLite-first 适用于 rustzen-admin 等需要本地存储的项目;Rustzen Zipper 是没有运行时数据库的 CLI 和 npm 包,rustzen-admin 也保留了可分离的后端与前端。
但这些倾向不等于必须抽出一个通用框架。只有当多个项目真的出现相同需求、接口和维护责任时,共享代码才有价值。为了“看起来统一”提前抽象,往往只是把一个仓库的问题变成多个仓库的依赖。
判断是否需要共享能力时,我只看三件事:
- 每个工具能否独立解释自己解决什么问题;
- 数据和运行边界是否足够清楚;
- AI 或其他协作者进入仓库时,能否找到真实命令、当前实现和禁止修改范围。
产品、工程和内容分开放
Rustzen 的产品代码不应该承担所有记录工作。
rustzen = 产品与工程实现
idaibin/skills = 可独立安装的专业能力
blog = 公开 Prompt、长期经验与判断
feeds-hub = 短周期信息流
分开以后,产品仓库不需要复制通用 Skill 或公开 Prompt,Skills Catalog 也不会混入具体业务内容。长期复盘和可复制 Prompt 留在 blog,短周期信息留在 feeds-hub。每个仓库都能说明自己拥有什么,也能说明自己不负责什么。
多仓库的成本
把项目拆小不会自动减少工作量。多个仓库意味着发布、文档和版本都要分别维护,有些基础能力也会暂时重复。
目前要验证的是每个工具能不能独立成立。等至少两个项目出现稳定的共同需求,再抽共享能力;在此之前,重复一点发布和文档工作,比先维护一个没有真实消费者的通用框架更容易判断。