StablEdge 用同一个安装器处理所有来源的 Skill:先预览,确认后再安装。下载、解压、校验和写入都由桌面端宿主完成,Agent 和界面只能通过受控入口发起请求。
支持的来源
| 来源 | 在安装器里 | 说明 |
|---|---|---|
| 本地文件夹 | 选择文件夹 | 文件夹里可以包含一个或多个 Skill。源文件夹本身不会被修改。 |
| 本地 ZIP | 选择 ZIP | 先预览,再解压安装。 |
| HTTPS 归档 | 填写 HTTPS 地址 | 指向一个 ZIP 文件的 HTTPS 地址。只接受 HTTPS 和标准端口,重定向后的地址同样要满足要求,最多跟随 5 次重定向。 |
| GitHub 仓库 | 填写 Git 地址 | 仅支持 https://github.com/<owner>/<repo>,可以指定分支、标签或提交(默认 HEAD),宿主下载该版本的 ZIP 归档。 |
两阶段安装:preview → commit
- preview(预览):宿主把来源放进当前账号的临时目录,执行来源限制、安全解包、路径和体积校验;再按 StablEdge 的解析规则校验每个候选的
SKILL.md。预览结果包含候选 Skill 列表、每个候选的文件清单(路径、大小、SHA256)、风险提示和目标安装路径,以及一个一次性的预览凭证。 - 选择候选:一个来源里有多个 Skill 时,用户或 Agent 选择要安装的那一个。
- commit(安装):宿主校验预览凭证、有效期、候选 ID 和内容 hash,确认来源在预览之后没有变化;然后备份已有的同名目录,原子地切换到新目录。
- 刷新:宿主让 Agent 运行时重新加载 Skill 并同步注册表。成功后删除备份;任一步失败,恢复旧目录并再次刷新。
- 预览凭证只能使用一次,默认 10 分钟过期,过期需要重新预览。
- Agent 发起的安装在全局安全确认开启时必须经过用户确认,官方来源也不自动豁免。
预览阶段的检查
| 检查项 | 规则 |
|---|---|
| 归档大小 | ZIP 或下载内容不超过 32 MB |
| 解压后总大小 | 不超过 64 MB |
| 单个文件 | 不超过 8 MB |
| 文件数量 | 不超过 2000 个 |
| 路径 | 只允许普通的相对路径,含 .. 或绝对路径的条目会被拒绝 |
| 符号链接 | 来源或归档里出现符号链接即拒绝 |
SKILL.md | 至少有一个;同一目录不能出现大小写不同的多个 SKILL.md;一个 Skill 目录下不能再嵌套另一个 Skill |
| 元数据 | SKILL.md 必须能被正常解析;Progressive Skill 的章节和资源声明必须全部通过校验 |
| 风险提示 | 候选中含脚本或可执行文件时,标为高风险,请检查内容后再安装 |
安装目录
Skill 装在当前账号的唯一安装目录:
<StablEdge 数据目录>/skills/user/<skill-name>/
目录名由 name 转换而来(空格转成 -),规则见 命名规则。安装同名 Skill 会替换原目录,相当于更新。
早期版本使用过其他 Skill 目录,也可能检测到其他 Agent 产品的 Skill 目录。StablEdge 只检测,不会在启动时自动合并或覆盖;需要时在安装器里选择这些目录显式导入,导入前同样会预览。
热同步
StablEdge 会持续监视安装目录和插件附带的 Skill 目录,修改会自动生效,无需重启:
- 每秒检查一次文件的路径、大小和修改时间;发现变化后计算目录内容 hash;
- 内容稳定约 0.75 秒后重新加载 Skill,并让宿主重新扫描、同步注册表;
- 每 60 秒额外做一次完整的内容比对,用来发现大小和修改时间都没变的修改;
- 监视范围是整个目录,不只是
SKILL.md:修改脚本、参考文档也会触发同步。
所以可以直接在安装目录里编辑 Skill 调试。改坏了的 SKILL.md 会让该 Skill 暂时无法加载,StablEdge 会记录具体原因(例如 frontmatter 不是合法 YAML、缺少 name),用于提示你改坏了哪里。
直接编辑安装目录跳过了安装器的预览检查。正式分发前,请重新用安装器从文件夹或 ZIP 安装一遍,确认能通过预览。
更新与重装
- 从源重新安装:对同一个来源再走一遍 preview → commit,新版本会原子地替换旧目录,失败时自动恢复旧版本。
- 就地修改:直接编辑安装目录,由热同步生效,适合开发调试。
- 版本号:建议在 frontmatter 里维护
version,它会随候选元数据一起出现在预览结果里,便于确认装的是哪个版本。