Agent Skillszly2006/zhihu-plus-plus › background-ui-debug

background-ui-debug

GitHub

通过离屏 Compose UI 语义树进行后台自动化调试与验收,验证页面状态、交互流程及截图,禁止前台窗口操作,确保测试隔离性与可审计性。

.agents/skills/background-ui-debug/SKILL.md zly2006/zhihu-plus-plus

Trigger Scenarios

UI 回归测试 页面卡死排查 导航完成度验证 逐按钮功能验收

Install

npx skills add zly2006/zhihu-plus-plus --skill background-ui-debug -g -y
More Options

Non-standard path

npx skills add https://github.com/zly2006/zhihu-plus-plus/tree/master/.agents/skills/background-ui-debug -g -y

Use without installing

npx skills use zly2006/zhihu-plus-plus@background-ui-debug

指定 Agent (Claude Code)

npx skills add zly2006/zhihu-plus-plus --skill background-ui-debug -a claude-code -g -y

安装 repo 全部 skill

npx skills add zly2006/zhihu-plus-plus --all -g -y

预览 repo 内 skill

npx skills add zly2006/zhihu-plus-plus --list

SKILL.md

Frontmatter
{
    "name": "background-ui-debug",
    "description": "在不创建、激活或切换任何前台窗口的前提下,通过项目的 debug-only 离屏 Compose UI 控制接口检查语义树、点击、输入、滚动、等待和截图。适用于 macOS Kotlin\/Native UI 回归、页面卡死、导航完成度和逐按钮验收;禁止用 AppleScript、System Events、open、桌面截图或坐标点击替代。"
}

后台 UI 调试

理念

UI 自动化的目标是证明用户可达状态,不是表演鼠标操作。调试器应直接驱动产品的 Compose 语义树,在内存中的离屏 Skia 画布完成布局和绘制,并留下可审计的输入、输出与截图。

必须遵守以下边界:

  • 严禁创建、显示、激活或切换应用窗口;严禁让 Dock 图标、菜单栏或焦点发生变化。
  • 严禁使用 openosascript、AppleScript、System Events、桌面截图、全局键鼠注入和屏幕坐标。
  • 只能运行独立的 debug 调试二进制。正式应用和 release 二进制不得依赖、注册或包含控制协议。
  • 只能用 testTag、文本、content description 等语义选择器操作;找不到目标就是失败,不能退回坐标猜测。
  • 截图必须来自离屏 Compose 画布,不得捕获用户桌面或其他应用。
  • 每次动作前先读取当前语义状态,动作后等待明确终态并再次读取;超时、异常、空白画面和状态未变化都算失败。
  • 调试二进制必须在组合 UI 前创建唯一的临时数据根;账号、Cookie、设置、历史、数据库和下载文件只能读写该目录,退出后删除。协议必须报告 dataMode=isolated,且不提供切换到生产数据的参数。
  • 默认不执行远端副作用。涉及发布、关注、投票、删除等动作时只能验证到提交前状态;即使任务授权了真实副作用,也必须换用独立测试账号和单独执行面,不能解除本调试器的数据隔离。

工作流

  1. 先确认生产应用没有运行,并检查当前任务不会启动 macosApp
  2. scripts/start_background_ui_debug.sh 构建并启动离屏调试器。脚本只 exec 调试 kexe,不调用任何窗口 API;启动后的首个 ready 事件必须同时满足 windowHost=falsedataMode=isolated
  3. 发送一行一个 JSON 命令。先用 state 再次确认 windowHost=falsedataMode=isolated 和临时 dataHome,随后 dump,再按语义节点执行 clickinputscrollbackwaitscreenshot
  4. 对每个页面枚举所有可点击节点;逐项操作后检查目标页面、返回路径、异常输出和耗时。破坏性动作只验证到提交前状态。
  5. 发现卡死时保留最后一个命令、动作前后语义树、离屏截图、耗时和 stderr;先定位确定根因,再修改生产代码。
  6. 修改后重跑相同命令序列,随后构建 release,并验证 release 二进制不含协议标记 ZHPP_BACKGROUND_UI_DEBUG_V1

协议字段、选择器和命令示例见 references/protocol.md

证据标准

一次有效验收至少包含:

  • 调试二进制的构建类型和进程路径;
  • readystate 中一致的 dataMode=isolated、临时 dataHome,以及进程退出后该目录已删除;
  • 每个动作的请求 id、语义选择器、成功或失败响应及耗时;
  • 关键页面动作前后的语义树差异;
  • 来自离屏画布的 PNG;
  • 页面级超时与进程终态;
  • release 隔离检查。

进程存活、命令返回 ok 或生成非空 PNG 都不能单独证明页面可用。必须验证目标语义状态出现,且离屏图像包含真实绘制内容。

Version History

  • ec77d30 Current 2026-08-28 22:10

Same Skill Collection

.agents/skills/github-pr-assets/SKILL.md
.agents/skills/launch-on-device/SKILL.md
.agents/skills/picky-user/SKILL.md
.agents/skills/release-latex-fork/SKILL.md
.agents/skills/ui-test/SKILL.md
.agents/skills/ui-voyager/SKILL.md
.agents/skills/zhihu-instrument-test-governance/SKILL.md
.agents/skills/zhihu-parallel-pr-workflow/SKILL.md
.agents/skills/zhihu-pp-ai-slop-cleaner/SKILL.md
.agents/skills/zhihu-reproduce/SKILL.md
.agents/skills/zhihu-performance-regression-review/SKILL.md

Metadata

Files
0
Version
ec77d30
Hash
b5bf7384
Indexed
2026-08-28 22:10

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-29 00:41
浙ICP备14020137号-1 $Carte des visiteurs$