Skip to content

feat(skill): 内嵌 skills/ 进二进制,skill setup 默认用内嵌源(修升级不刷新)#441

Open
PeterGuy326 wants to merge 1 commit into
feat/chat-bot-provisioning-openclawfrom
feat/embed-skills-setup
Open

feat(skill): 内嵌 skills/ 进二进制,skill setup 默认用内嵌源(修升级不刷新)#441
PeterGuy326 wants to merge 1 commit into
feat/chat-bot-provisioning-openclawfrom
feat/embed-skills-setup

Conversation

@PeterGuy326

Copy link
Copy Markdown
Collaborator

背景

dws skill setup 此前从当前工作目录 / 二进制旁探测 skills/ 源安装,二进制本身不内嵌 skill(无 go:embed skills/)。后果:

  • 升级二进制后已装 skill 不会刷新——若曾在某个旧分支目录跑过 setup,装上的就是旧路由,长期踩坑;
  • agent 被问"创建钉钉机器人"时读到旧 skill、找不到 dws connect bot create,扎进 chat 死胡同(见 issue 复盘)。

改了什么

  1. 根包内嵌:新增 skills_embed.go(module 根包 dws//go:embed all:skills。用 all: 前缀以包含 references/best_practices/_common 等下划线目录(否则 go:embed 会静默跳过)。
  2. setup 默认用内嵌源:新增 resolveSkillSetupSourceOrEmbedded —— 不带 --source / DWS_SKILL_SOURCE 时,把内嵌的 skills/<mode> 解到临时目录安装(复用既有目录拷贝逻辑),用完即清理。这样 dws skill setup 始终安装与当前二进制同版本的 skill,升级二进制即刷新。
  3. dev 覆盖保留--source / DWS_SKILL_SOURCE 仍优先,方便本地改 skill 时指向 checkout。

验证

  • go build ./... / go vet / skill 相关单测 全过;
  • 新增单测:内嵌提取产出合法 mono 源根 + 含 connect.md / _common(守住 all: 前缀不被改丢)+ 临时目录清理 + 无 flag 时回退内嵌;
  • 端到端:编出二进制,在无 cwd skills/、独立假 HOME、不带 --source 下跑 skill setup,装出的 skill 含 connect.mdchat.md 的 connect 挡板、SKILL.md 的建机器人→connect 路由;--source 显式覆盖仍正常。

影响

  • 二进制体积 +~3.3M(skills/ 内嵌)。
  • 行为变更:默认源从"探测 cwd/二进制旁"改为"内嵌"。开发者改 skill 需显式 --source .(已在 help/注释说明)。

base 选 feat/chat-bot-provisioning-openclaw#407 线),diff 仅含本特性,与 #407 解耦。#407 合并后可改 base 到 main。

@PeterGuy326 PeterGuy326 force-pushed the feat/chat-bot-provisioning-openclaw branch from 5c31db4 to 9ebb848 Compare June 9, 2026 12:09
修复升级二进制后 dws skill setup 仍装旧 skill 的问题:此前 setup 从
当前工作目录/二进制旁探测 skills/ 源,二进制不内嵌,导致升级后已装
skill 不刷新、agent 读到陈旧路由。

- 根包 go:embed all:skills(all: 以含 _common 等下划线目录)
- skill setup 默认从内嵌源解到临时目录安装;--source / DWS_SKILL_SOURCE
  仅作 dev 覆盖
- 新增内嵌提取 + 默认回退单测;go build/vet/test 全过;干净环境(无 cwd
  skills/、假 HOME)端到端验证装出含 connect 路由的 skill
@PeterGuy326 PeterGuy326 force-pushed the feat/embed-skills-setup branch from 5adde4e to 02e1375 Compare June 9, 2026 12:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant