内置技能显示与恢复

让隐藏的 WorkBuddy 内置技能显示在已安装技能列表中,验证副本,并安全恢复更改。

wangjiaocheng
2026年10月13日
0 收藏
76 下载

安装与下载

1 ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install workbuddy-skill-visibility

2 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/
工作区 {'/skills/'}

优先级:工作区 › 全局 › 内置

3 提示词安装

将此提示词复制到 Openclaw 即可自动安装。

请帮我使用 Clawhub 安装 skill-workbuddy-skill-visibility。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

更倾向于下载?

获取包含原生技能文件的ZIP压缩包。

下载技能 (.zip)

基本信息

名称 内置技能显示与恢复
Slug workbuddy-skill-visibility
创建者 wangjiaocheng
创建时间 2026-10-13 05:52:25
更新时间 2026-10-13 05:52:25
收藏数 0
使用量 76
浏览量 6

安装指南

  1. ClawHub CLI 从源直接安装技能的最快方式。
    npx clawhub@latest install workbuddy-skill-visibility
  2. 手动安装 将技能文件夹复制到以下位置之一
    全局模式
    ~/.openclaw/skills/
    工作区
    /skills/
    优先级:工作区 > 本地 > 内置
  3. 提示词安装 将此提示词复制到 OpenClaw 即可自动安装。
    请帮我使用 Clawhub 安装 workbuddy-skill-visibility。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
    更倾向于下载?
    获取包含原生技能文件的ZIP压缩包。
    下载技能 (.zip)

什么是

内置技能显示与恢复可帮助诊断 WorkBuddy 技能为何未显示在已安装技能列表中,并提供更安全的显示方式。它会将内置技能复制到用户技能目录,让 WorkBuddy 能够发现它们,同时不修改内置原件。请先使用只读检查,查看哪些技能将被复制、跳过或需要处理。
对于 Openclaw Skills 用户,此工具还会将副本与内置原件进行比较,检测缺失或过期的副本,并支持完整或选择性恢复。默认的基于复制的方式会将更改保留在用户配置目录中;修改应用程序包属于风险更高的备用方案,不建议使用。

应用场景

内置技能未出现在 WorkBuddy 的已安装技能列表中,或列表似乎为空。
希望某个特定内置技能显示为已安装的用户技能。
应用程序更新后,需要检查技能副本是否仍与内置原件一致。
写入或删除文件前,希望准确查看同步或恢复将进行哪些更改。
需要撤销此技能创建的全部或选定副本。

工作原理

从环境变量或平台默认值检测 WorkBuddy 安装目录和配置目录;如果检测到的结构不符合预期,则报错停止。
运行 list 预览可复制或将被跳过的技能,然后运行 status 将副本与内置原件进行比较。这两个命令均为只读操作。
在进行更改前报告诊断结果和受影响的技能。
运行 sync 将内置技能复制到用户技能目录。匹配的副本会被跳过;不匹配的副本会保持不变,除非指定 --force。内置原件不会被修改。
完全重启 WorkBuddy,使其重新扫描技能列表。
如有需要,使用 restore --dry-run 预览删除内容,然后在用户确认后恢复全部或选定副本。
再次运行 status,验证最终的一致、滞后、缺失和异常状态。

配置指南

从技能目录运行脚本。脚本使用 Python 标准库,不需要第三方 Python 软件包。如果 PATH 中没有 python,脚本可以使用 WorkBuddy 管理的 Python 解释器。默认操作为 sync;请先使用只读命令,并在同步后完全重启 WorkBuddy。

预览将被复制或跳过的技能

python scripts/skill_visibility.py list

将副本与内置原件进行比较

python scripts/skill_visibility.py status

将内置技能复制到用户技能目录

python scripts/skill_visibility.py sync

仅在明确需要时替换不匹配的副本

python scripts/skill_visibility.py sync --force

预览将被移除的副本

python scripts/skill_visibility.py restore --dry-run

恢复所有受管理的副本,或指定技能名称以选择性恢复

python scripts/skill_visibility.py restore
python scripts/skill_visibility.py restore
如果自动检测不适用,请使用 --app-root DIR 和 --config-dir DIR 指定路径。这些选项支持 --flag PATH 和 --flag=PATH 两种形式。可选的应用程序包修补命令风险较高,不应作为默认方案使用。

数据架构

此技能会处理 WorkBuddy 安装文件和用户配置目录。它会在运行时发现路径,而不是假设路径固定不变。
数据或位置 用途
WorkBuddy 安装根目录 内置技能原件;先从 WORKBUDDY_APP_ROOT 检测,然后使用平台默认值。
WorkBuddy 配置目录 用户技能和技能列表缓存;从 WORKBUDDY_CONFIG_DIR 检测,或默认为 %USERPROFILE%\.workbuddy。
\skills\ 内置技能真实副本的目标目录。不会使用目录联接。
.skill-list-cache.json WorkBuddy 缓存,可用于检查当前存在的技能,包括已从界面筛除的技能。
scripts/skill_visibility_manifest.json 此脚本创建的副本的可选记录。如果该文件缺失,可通过将副本内容与内置原件进行比较来识别匹配的副本;下次同步时可以重建清单。
status 会将副本报告为一致、滞后、缺失或异常。如果清单不可用,工具会改用内容指纹识别。内置原件发生更改后,可能不再与旧副本匹配,因此在未经验证的情况下,工具不会将该副本视为受管理副本。

高级特性

只读的
list
status
命令可在更改任何文件前用于诊断。
安全复制行为会跳过匹配的副本,并要求使用 --force 才能覆盖不匹配的副本。
restore
支持移除所有副本或指定技能的副本,并可使用 --dry-run 预览删除列表。
运行时路径检测支持环境变量以及显式的 --app-root --config-dir 覆盖选项;遇到意外的目录布局时会报错,而不是猜测并进行更改。
如果可选清单缺失,可以使用内容指纹重新构建。
对于原件声明
user-invocable: false
的五个副本,仅会在副本中将该设置更改为
true
;
disable-model-invocation
和内置原件保持不变。
提供可选的应用程序包检查和修补/恢复命令,但不建议修改应用程序包,因为应用程序更新可能会覆盖更改,而且错误的修补可能导致界面无法打开。应用程序包修补默认执行试运行,写入时必须指定 --force 。
Python 只需要标准库。只有进行应用程序包命令语法检查时才需要 Node;如果缺少 Node,会报告这一情况,但不影响推荐的复制工作流程。
Openclaw Skills 用户请注意,只有完全重启 WorkBuddy 后更改才会生效。


name: workbuddy-skill-visibility display_name: 内置技能显形与还原
display_name_en: Built-in Skill Visibility & Restore
description: 让 WorkBuddy 内置技能出现在「已安装技能」列表里,并支持一键完整复原;也用于核对副本与内置原件是否一致。触发词:内置技能看不见、内置技能不见了、技能列表为空、显示内置技能、恢复内置技能、skill_visibility、技能列表缺技能。 description_zh: 让 WorkBuddy 内置技能在「已安装技能」列表中可见,并支持一键完整复原。
description_en: Make WorkBuddy built-in skills visible in the installed-skill list and restorable in one step.
category: productivity # 对应技能市场分类「效率工具」;英文枚举官方未公开,此为推断值,创建技能时以平台分类下拉为准
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, PowerShell
version: 1.0.0
disable-model-invocation: false
user-invocable: true
author: 王教成 Wang Jiaocheng (波动几何)

内置技能显形与还原

当用户遇到以下任一情况时执行本技能:界面「已安装技能」里一个内置技能都看不到;要求把某个内置技能显示出来;要求复原此前做过的显形改动;核对副本与内置原件是否一致;询问「技能列表里找不到某技能」的去向。

背景(执行前必读)
为什么看不到:「已安装技能」列表只渲染来源为用户技能的条目,内置技能(source=builtin)、连接器技能、以及 plugins\cache\ 下的插件技能都被前端显式过滤掉。全部技能可在 %USERPROFILE%.workbuddy.skill-list-cache.json 里核对,看不到属正常,不是装坏了。
两条路:一是副本方案,把内置技能复制一份到 %USERPROFILE%.workbuddy\skills\,扫描器就按用户技能收录;同名的内置那份在扫描阶段被按名去重跳过,所以列表里不会出现重复条目。二是改前端 bundle,直接改渲染层的过滤函数。默认只用副本方案,第二条风险高得多,理由见下文专节。
路径不写死:安装目录与配置目录都在运行时探测——安装目录取 WORKBUDDY_APP_ROOT,否则 %LOCALAPPDATA%\Programs\WorkBuddy,再否则 ProgramFiles;配置目录取 WORKBUDDY_CONFIG_DIR,否则 %USERPROFILE%.workbuddy。探测到但结构对不上会明确报错并返回退出码 2,不会去猜、更不会去改别的地方。
不要用目录联接(junction):Node 把 junction 当符号链接,应用不跟随,必须用真实副本。
清单文件是可选的:scripts/skill_visibility_manifest.json 记着哪些副本是本脚本建的。删掉它脚本照常工作——技能目录里凡是内容与内置原件对得上的副本,都能被当场指纹识别并重新纳管,下一次 sync 会把清单重建出来。它只多兜住一件指纹替代不了的事:应用升级后内置原件会变,副本与原件就不再一致,那时光靠指纹会把它看成「你自己装的技能」而不敢碰。
执行步骤

  1. 先看现状(只读)

先运行 list 看会同步哪些、跳过哪些,再运行 status 逐条比对。先把结论汇报给用户,再动手改动。 两个命令都不写任何文件。

  1. 显形

运行 sync,把内置技能复制到用户技能目录。清单里另有 5 个原件声明了 user-invocable: false,脚本会在副本的前置声明块里把这一条翻成 true,原件一字节不碰;disable-model-invocation 一律不动。

已存在且内容一致的副本会跳过;不一致的默认也跳过,加 --force 才覆盖。
sync 不带参数即默认执行,无需显式写命令名。
副本目录已存在时按目录合并覆盖,不会因重名中断。 3. 生效

提醒用户完全重启 WorkBuddy,重启后技能列表才会重新扫描。

  1. 复原

restore 删除本脚本建的全部副本,回到动手前的状态;restore 只删指定的那几个。删除前先加 --dry-run 看清清单,确认无误再执行。原件不在时脚本会单独标出「待删但无法核对」,先提醒用户再动。

  1. 核对

再跑一次 status,确认「一致 / 滞后 / 缺失 / 异常」四项里该一致的都一致、其余归零。

命令一览
list 列出会同步哪些、跳过哪些,并打印本次探测到的四行路径。只读。
status 逐条比对副本与原件,报告一致、滞后、缺失、异常。只读。清单缺失时退回指纹识别。
sync 执行显形(默认命令)。--force 覆盖不一致的副本。
restore 全部复原。restore 只复原指定项,--dry-run 先看清单。
bundle-status 只读,看前端 bundle 是「原样 / 已打补丁 / 部分」。不建议用这条路。
bundle 给前端 bundle 打补丁,默认只演练不写盘,必须加 --force 才真写。不建议用。
bundle-restore 还原前端 bundle。救援动作,默认直接生效,加 --dry-run 才只演练。 --version 打印版本号;--help 打印完整文档。

开关(可与命令任意换位,支持 --flag PATH 与 --flag=PATH 两种写法):--app-root DIR 指定 WorkBuddy 安装目录,--config-dir DIR 指定用户配置目录。

脚本调用方式

python scripts/skill_visibility.py [开关]

依赖:仅 Python 标准库(os / re / shutil / subprocess / hashlib / json / tempfile / time / sys),无第三方包。
若 PATH 里没有 python,改用 WorkBuddy 托管解释器 %USERPROFILE%.workbuddy\binaries\python\versions*\python.exe(按版本倒序取最新的一个)。
只有 bundle* 三条命令需要 node(做语法体检);node 也按 PATH → 托管目录的顺序查找,找不到时脚本会如实报告「无法体检」,不影响副本方案。
清单文件写在脚本同目录,即 \scripts\skill_visibility_manifest.json。
改 bundle 这条路(脚本里做了,但不建议)

这条路的命令写在脚本里备用,默认不执行、也不建议用,理由如下:

一是它改的是应用安装目录里的分发产物。任何一次版本更新都会整包覆盖,改动静默丢失。
二是目标文件名带内容哈希(形如 contexts-.js),升级后名字会变,只能靠通配加内容匹配去定位,不能写死。
三是它处在首屏关键路径上。改坏了不是某个功能失效,而是整个界面(含对话窗口)都打不开。
四是它改的推理不可靠,写错一个字符就白屏;脚本里的「语法体检」只查语法,查不出语义错误。
五是回报有限——它和副本方案目标相同,而副本方案改在用户目录、升级不受影响、失败也只影响单个技能。

技术上这条路是通的:目标文件在 app.asar.unpacked 里,是磁盘上的真文件,Electron 对解包文件不做完整性校验。脚本给出的安全链是:先备份 .wb-orig.bak,再在临时文件上做语法体检,体检不过就不落盘,落盘后复核锚点,任何一步不对自动回滚;锚点要求「原式恰好 1 次、新式 0 次」才替换,应用升级改了代码就只会报告「未动手」并跳过。即便如此,仍以副本方案为准,两者不并用。

输出要求
先汇报诊断结论(会同步哪些、跳过哪些、哪些已一致),再执行写入;每步改动前后告知受影响的范围。
复原类操作一律先 --dry-run 列出待删清单,取得用户确认后才真正执行。
完成后给出核对结果清单;未成功项给出原因与建议动作。
边界声明:本技能只改动用户配置目录(副本方案),或经用户明确同意后改动应用安装目录(bundle 方案),不改动内置原件;换电脑需在该机器重新执行;改动后必须完全重启应用才生效。

Insight Pre-Trade

求职申请跟踪器