ghost-him/zerolaunch-rs/plugin-real-verify
Claude Code and agent skill by ghost-him/zerolaunch-rs
- community
Checking that the SKILL.md file is still in the repository.
第三方插件(ZeroLaunch-plugin-* 与 plugin-template)改动的真机验证流程:源码构建产物、校验 zip 布局、按真实路径安装、真实键鼠模拟并核对可观测结果,含 CDP 面板驱动要点、原生窗口取证片段与清理清单。改插件 Rust/UI/i18n/manifest 任一环节后使用。
Install
npx vskill@latest install ghost-him/zerolaunch-rs/plugin-real-verifySKILL.md
plugin-real-verify — 插件改动真机验证
铁律:插件改动(Rust / UI / i18n / manifest 任一)必须走完 构建 → 验产物 → 安装 → 真实操作 → 可观测结果核对 五步。只把改动文件拷进已安装目录、不打包不安装,或只有离线 harness(happy-dom 之类)结论,都不算验证完成。
宿主侧(ZeroLaunch-rs 本体)UI 验证见 dev-verify-cdp。
1. 构建产物
在插件仓库根目录执行打包脚本(内部会 cargo build --release 后打 zip):
产物落在 dist/。纯 UI / i18n 改动也必须真跑一次打包——它是唯一能暴露打包脚本与 zip 布局回归的环节。
2. 校验产物(构建与安装之间最容易漏的一步)
符号计数用于证明「装进去的确实是这次构建的产物」,而不是上一次的包。
3. 安装(真实路径)
宿主侧入口:设置 → 插件管理 → 从本地文件安装(zip;旁边另有「从目录安装」)。链路是:@tauri-apps/plugin-dialog 原生文件对话框(窗口类 #32770)→ 应用内预检确认弹窗 → plugin_install_local;已安装同名插件时会再弹「是否覆盖」。
- 不要让脚本用 SendKeys 驱动原生对话框:实测 AppActivate 返回 True 但按键落点不可控(一次静默失败、一次把对话框关掉)。也不要仅凭 UIA「找不到该窗口」就断言对话框没开——UIA 的
TreeScope::Children在该对话框上有盲区,而EnumWindows能枚举到它。 - 优先让用户自己点、自己装;若必须自动化,用下面的等价回退并在汇报里写明用的是回退路径:
- 生效方式:宿主按 URL 缓存插件 ESM 模块。`Page.reload` 搜索窗口即可清掉面板模块缓存,比重启宿主快。拖拽安装走 webview 级
onDragDropEvent(OS 级事件,CDP 造不出来)。
4. 模拟用户操作(真实事件)
CDP 连接与启动流程见 dev-verify-cdp。插件面板相关的额外要点:
- 必须开焦点仿真:
Emulation.setFocusEmulationEnabled { enabled: true },否则focus()不落地、键盘事件打到 DIV 上,面板键盘处理永不触发。 - 进面板:全局热键(OS 级)CDP 打不到,用触发词唤醒——把
value写入搜索框 + 派发input事件 → 等防抖 → 在候选列表上按真实 Enter。 - 面板在 Shadow DOM:
.third-party-panel-host→shadowRoot→ 面板内部选择器(如#<前缀>-input、.ev-item这类由插件约定的类名,以其前端源码为准)。 - 面板内输入用
Input.insertText(等价真实键入);尽量不用「改 value + 派发事件」。 - 不要钩 `window.__TAURI_INTERNALS__.invoke`:该属性不可写,赋值静默失效,会让你误判「动作没触发」。断言副作用,不要断言调用。
- 焦点相关行为必须实测
document.activeElement:真实点击不可聚焦的列表项后焦点会回到BODY,挂在输入框上的键盘处理整片失效——「点击后快捷键无效」这类问题只能靠实测定位。
5. 可观测结果核对
- 面板渲染文本(插件面板提示语、条目内容)与动作执行后的副作用。
- 资源管理器:先取基线,只核对/清理自己新开的窗口:
``powershell (New-Object -ComObject Shell.Application).Windows() | ForEach-Object { $_.LocationURL } ` 只读,**绝不要 .Quit()`**(Win11 单进程多标签会连带关掉用户其它窗口)。
- 浏览器:用窗口标题变化判断是否真的导航,不要只看进程是否存在。
- 日志:插件
%USERPROFILE%\.ZeroLaunch-rs\plugin-logs\<plugin-id>.log;宿主%USERPROFILE%\.ZeroLaunch-rs\logs\。 - 安装生效的旁证:候选列表里插件的描述文案取自已安装包的
manifest.toml,描述变了即说明装的是新包。
6. 原生窗口取证(UIA 看不见时用它)
跑 PowerShell 时建议 -NoProfile -WindowStyle Hidden(必要时 -EncodedCommand 传 UTF-16LE base64),避免控制台抢前台干扰被测窗口。
7. 汇报判据
- 产物:打包脚本输出路径、zip 内文件清单(含新增符号计数)、安装方式(用户手动 / UI 装 / 解压回退)。
- 真机现象:面板渲染文本、真实按键后的副作用(资源管理器路径、浏览器标题)、对应日志行。
- 回归:改动相邻的既有按键/动作各跑一次(例:动了 Ctrl+Enter 必须复验 Enter)。
- 离线 harness 结论只算补充证据,不能替代真机验证。
8. 清理清单
- 关掉自己打开的资源管理器窗口与外部程序;删临时标记目录与
/tmp解包目录。 - 若动过插件安装目录:还原为已发布内容;若是用户刻意安装新包,保持安装态不动并在汇报里说明。
- 停掉本次启动的 dev 实例(按
dev-verify-cdp的清理顺序,确认无残留进程与端口占用);用户正在使用的实例保留并说明。 - 仓库里不留一次性脚本;
dist/产物可留(已 gitignore)。 - 发版提醒:版本号需在
manifest.toml、Cargo.toml、git tag 三处一致。
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryChecking.omp/skills/plugin-real-verify/SKILL.md
Popularity
- Repository stars
- 572
- Repository forks
- 30
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ghost-him/zerolaunch-rs/plugin-real-verify)