Routic CLI 三档拆包(免费 / 注册 / 付费)
开源 Routic CLI 在仓库内按 三个物理包 划界,避免「一个 npm 包默认全送」导致产品承诺模糊。实现代码以 CLI 仓库根目录的 docs/PACKAGING.md 为技术真源;本文面向 官网读者,只保留产品口径。
先抽象还是先拆包
先抽象(三档契约),再拆物理包。
- 用一张表写清:该能力属于 免费获客、注册留存,还是 付费收入与责任边界。
- 再决定落盘目录:
packages/free、packages/account、packages/pro。 - 最后才增加 npm 包名、独立发布节奏或私有 registry。
反过来先拆目录、后补契约,容易把所有新功能继续塞进免费包。
三档分别装什么
| 档位 | 用户是谁 | 典型内容 | 不是什么 |
|---|---|---|---|
免费(@routic/cli-free) | 任意开发者 | routic init 骨架、通用技能、doctor 基础检查、可公开的模板 | 供应商私有数据、深度诊断量表、托管代操作 |
注册(@routic/cli-account) | 已注册 / 已授权账号 | 可版本化的扩展包、社区模板、更新通道、轻量报告 | 合同级 SLA、生产代运维 |
付费(@routic/cli-pro) | 签约客户 | 行业 playbook、模型与成本策略、深度 adoption、引导填全项目「血肉」、执行闭环 | 不应伪装成免费命令悄悄带上 |
给贡献者与内部产品的一句话
新增 CLI 能力或技能时:先选档,再写代码。免费包只保留「能自学、能复用、不泄密」的部分;需要账号或合同的部分进对应占位包或私有制品,由 doctor / 文档给出 跳转提示 即可。
更细的工程约定以 CLI 仓库内 docs/PACKAGING.md 为准。
Skills 和红帽模式:能学什么、不能学什么
Skills(Markdown / 规则包)本身很难像 RHEL 二进制那样「卖介质」:别人可以复制文件,没法靠保密几份 skill 就建立壁垒——这一点和 GPL 源码类似。
能学的是红帽的「漏斗 + 订阅」逻辑:
| 红帽 | Routic 可对位 |
|---|---|
| Fedora 等免费上游 | 免费档:泛化 skills、项目骨架、doctor 基础能力——愿意被传播 |
| RHEL 订阅卖的是补丁节奏、认证、SLA、有人接电话 | 付费档:与账号/合同绑定的诊断、行业包、模型与成本策略、托管与责任边界——抄 markdown 抄不走 |
| 服务与培训 | 注册档:扩展包、更新通道、社区模板、轻量报告 |
因此:免费 skills 当获客与信任;钱和确定性放在服务端、私有制品、合同与运维——而不是指望「没人转发 npm i 命令」。
npm 发布与密钥(给维护者)
- 不要在聊天、PR、仓库里粘贴 npm token;一旦暴露应 立即在 npm 网站撤销并轮换。
- 发布在本机用
npm login(交互)或 CI 里用 密钥库注入的NPM_TOKEN环境变量,不要把 token 写进package.json或 shell 历史里长期明文。 - 公网包 无法阻止别人转发安装命令;产品边界靠 三档契约 + 鉴权能力,不靠「命令不外传」。