用途
verify-libreuiux 用于验证 LibreUIUX-Claude-Code 插件库的安装路径。LibreUIUX-Claude-Code 是一个插件库而非运行中的应用:plugins/ 下共有 71 个插件,以 libreuiux marketplace 的形式发布。它的用户界面就是安装本身——用户在 Claude Code 或 Grok Build 中把该仓库添加为插件市场,从中安装插件(或在克隆后运行 ./setup.sh),然后使用插件带来的 skills、commands、agents 和 hooks。本技能在一次性配置中驱动这条路径,因此验证过程不会触碰你自己的 Claude Code 配置或 Grok home。
主要能力
辅助脚本(可执行、bash,依赖 claude、grok、jq 和 git)为控制脚本 control-libreuiux。
支持的子命令:
$B --help:打印命令列表。$B doctor:判断是否值得驱动——检查 CLIs、head、清单是否同步。$B run:对每个插件、在两个 CLI 中运行并证明每个都被加载,输出一份 JSON 结果。$B run --only design-mastery:只对某次改动涉及的插件执行同样流程。$B run --pr 12 --expect <sha>:在 PR head 上执行,拉取到临时克隆中。$B install --claude --only design-mastery:一次保留其干净配置的新运行,供后续步骤使用。$B details design-mastery:最新一次运行中的组件清单(两个 CLI)。$B setup --list:在最新运行的干净配置中执行 ./setup.sh。$B check:执行 scripts/check.sh,即仓库唯一的检查命令。$B cleanup:删除每次运行的 scratch;证据保留。
输出:stdout 为 JSON,进度输出到 stderr,任何验证失败时退出码为 1。辅助脚本写入的所有内容位于 VERIFY_LIBREUIUX_HOME 下(默认 ~/.local/share/verify-libreuiux):runs/<stamp>-<head8>/(或 <stamp>-pr<N>-<head8>)包含 scratch/ 与 evidence/,runs/latest 指向最新一次运行。
使用方式
启动
没有服务器。启动即开始一次运行:生成一个运行文件夹,其中包含空的 Claude Code 配置(CLAUDE_CONFIG_DIR)和空的 Grok home(GROK_HOME),两者都在 scratch/ 下。
被测代码树是辅助脚本所在的检出目录。使用 --pr N 时,它是从 origin 拉取的 refs/pull/N/head 的临时克隆;--expect <sha> 会拒绝其他任何 head。
Claude Code 将该代码树添加为 libreuiux 市场,并安装 <plugin>@libreuiux。Grok 将检出目录添加为以其文件夹命名的市场,然后安装 <plugin>@<folder>。
就绪条件是 marketplace add 退出码为 0:evidence/claude-marketplace-add.log 与 evidence/grok-marketplace-add.log(或 grok-install.log)以 exit 0 结尾。
拆除:run 在结束时删除自己的 scratch。使用 install 后,在完成 details 与 setup 后运行 cleanup。
Doctor
$B doctor 输出:
- claude、grok:PATH 上的 CLI 版本。为空表示该 CLI 缺失。
- marketplace、claude_plugins、grok_plugins:当前检出中清单声明的内容(当仓库根目录即为插件时,grok_plugins 为 null)。
- grok_manifest_in_sync:python3 scripts/sync-grok-manifest.py --check 是否通过。
- head、dirty:被测提交,以及检出是否有未提交改动。dirty 的代码树会被报告而非拒绝;应在证明中说明。
- worth_driving:为 false 时先停止并修复所报告的字段。
驱动
将改动对应到 features/README.md 中的某个功能,并驱动该功能文件列出的每个入口点。run 一次性完成整条安装路径:在两个 CLI 中添加市场,安装所选插件,回读 claude plugin list --json 与 grok plugin list --json,并从 claude plugin details 与 grok plugin details 写入每个插件的组件清单。result.json 按 CLI 报告:期望什么、已启用或已安装什么、缺少什么,以及任何 Claude Code 加载错误。仅当没有缺失且没有加载失败时 ok 才为 true。
针对单个插件的改动,run --only <plugin> 即为证明;针对清单、setup.sh 或任何共享内容的改动,使用不带 --only 的 run。
证据
evidence/<step>.log:每条命令的命令行、输出与 exit N。
evidence/claude-list.json 与 evidence/grok-list.json:安装后干净配置中包含的内容。
evidence/details-claude-<plugin>.txt 与 evidence/details-grok-<plugin>.txt:每个插件带来的 skills、commands、agents 与 hooks。
evidence/result.json:上述判定字段,附带其运行所基于的 head 与 PR。
证明标准:驱动真实用户路径(先添加市场,再安装),绝不把文件复制进 plugins 文件夹。同时捕获动作与结果状态:安装日志以及从干净配置回读的列表与详情。绿色的 scripts/check.sh 是仓库的检查,而不是某个指明用户路径的 Done-when 的证明:还需驱动那条路径。当某个 Done-when 指明插件带来的命令时,需展示该命令出现在插件详情中。
清理
$B cleanup 删除每次运行的 scratch/(干净配置与任何 PR 克隆),不涉及其他内容,也绝不动你自己的 Claude Code 配置或 Grok home,因为这里没有任何命令使用它们。证据保留在 runs/ 下,直到你删除它。
适用场景与限制
该技能适用于在改动插件、清单、setup.sh 或任何共享内容后,验证 LibreUIUX-Claude-Code 的安装路径是否仍然可用,并可针对 PR head 运行。使用前需具备 claude、grok、jq 与 git 环境;doctor 中 worth_driving 为 false 时应先修复所报告字段。辅助脚本以退出码 1 表示任何验证失败,dirty 代码树会被报告但不拒绝。