Release v1.0.114: add sync.ps1 so new skills can mirror plaintext locally
All checks were successful
技能自动化发布 / release (push) Successful in 7s

This commit is contained in:
2026-09-24 10:06:34 +08:00
parent a8403ce9b4
commit e32d04ec50
9 changed files with 717 additions and 3 deletions

View File

@@ -74,6 +74,7 @@ your-skill/
├─ CHANGELOG.md
├─ requirements.txt
├─ release.ps1
├─ sync.ps1
└─ SKILL.md
```
@@ -85,6 +86,8 @@ your-skill/
- `DEMO.md`:市场 **演示** Tab(`demo_video_url` + `demo_md`)
- `CHANGELOG.md`:市场 **更新日志** Tab(按版本小节同步 `changelog`)
- `SKILL.md`:面向 LLM / 平台的技能入口
- `release.ps1`:发布到服务器(提交、tag、CI 加密包)
- `sync.ps1`:把明文同步到本机宿主,供界面验收
- `references/`:Agent 运行/编排/调用时渐进加载的补充上下文(如 CLI、SCHEMA)
- `development/`:面向开发者与 AI 编程代理的开发资料、需求、测试与技术规范
- `scripts/`:放真正的代码
@@ -173,6 +176,7 @@ scripts/
- `SKILL.md` 的 `metadata.openclaw.platform_kit_min_version`(当前 `1.2.11`)是运行契约/兼容性声明,供宿主安装与启用时校验,**不是** pip 依赖声明。
- 匠厂宿主安装/更新技能后,会将技能 `requirements.txt` 安装到共享 venv:`{JIANGCHANG_DATA_ROOT}/python-runtime/.venv`。
- **不要**在业务代码中 `subprocess` / `pip install`;缺依赖由 `health` 报错,由宿主负责安装。
- 根目录 `sync.ps1` 是开发者手动执行的本机同步,允许用 `uv pip install` 把本技能 `requirements.txt` 装进宿主共享 venv。业务代码和其它脚本仍然不要自己装包。
- **版本约束尽量收窄**,降低多技能共享 venv 时的冲突风险。推荐范围写法:
- `pkg>=1.2.0,<2`
- 对**原生扩展 / 高风险依赖**(如 `chromadb`、`onnxruntime`)建议 pin 或窄范围,避免无上限:
@@ -747,6 +751,33 @@ python scripts/main.py <your-command>
详见 `TESTING.md`。
## 14.6 同步到本机宿主
`sync.ps1` 和 `release.ps1` 并排,都在技能根目录执行。`release.ps1` 发布到服务器并触发加密打包;`sync.ps1` 把当前明文覆盖到本机已安装的技能目录,用来在宿主里验收,不必每次都走服务器构建。
在技能根目录:
```powershell
.\sync.ps1
.\sync.ps1 -DryRun
.\sync.ps1 -SkipDeps
.\sync.ps1 -ForceDeps
.\sync.ps1 -SkipInitDb
```
脚本会:
- 按 `SKILL.md` 的 slug 镜像到 `%USERPROFILE%\.openclaw\skills\<slug>`,排除 `.git` 等开发目录
- 去掉安装目录里残留的 `pyarmor_runtime_*`
- 把 `requirements.txt` 装进宿主共享 venv(与宿主安装技能同一条路径)。依赖未变时可跳过;`-SkipDeps` 只跳过安装,仍会跑 `init-db`
- 用宿主 `settings.json` 里的当前登录用户跑 `scripts\main.py init-db`。没有登录用户时停止,不会猜用户 ID
同步完成后:先停掉该技能正在跑的任务,退出资料管理再打开。不要点技能市场的「更新」,那会用加密包装掉这份明文。
技能至少要从市场安装过一次,宿主才会启用它。`sync.ps1` 覆盖的是已经装上的那一份。市场上的「最新版本」仍只在 `release.ps1` 的 CI 成功后变化;本机「当前版本」来自这次同步写进去的 `SKILL.md`。
`sync.ps1` 须为 UTF-8 无 BOM,且不要写中文:Windows PowerShell 5.1 会把无 BOM 的中文脚本解析错。
## 15. 发布到正式环境验证
### release workflow 通道