第一次会话

在你的 agent 里手把手走一遍 Hover 的运行。预计时间:5 分钟。

前置条件

  • 已按 快速开始 操作——@hover-dev/mcp 已加到你的 agent,dev server 正在跑。
  • 一个会说 MCP 的编码 agent(Claude Code、Cursor…),已登录。
  • 首次运行时,Hover 会提示你在 9222 端口启动一个隔离的调试版 Chrome。

第 1 步 —— 设置一个环境(可选)

你可以让 agent 替你登录,而不把凭据写进 spec。定义一个测试账户并按名称引用;agent 通过 @account 登录。凭据会被参数化成 process.env 引用——绝不写进 spec、JSDoc 或 sidecar——同样的名称可导出到你的 CI secrets。(如果你用驾驶舱,账户密码存在 VS Code SecretStorage 里,绝不进入提交的名册。)

如果你纯粹在自己 agent 的 MCP 里工作,agent 问起时告诉它测试凭据即可——它会问,而不是瞎猜。

第 2 步 —— 运行 test_app prompt

在你的 agent 里调用 Hover 的 prompt:

/mcp__hover__test_app           # 探索整个应用并结晶出一套 spec
/mcp__hover__test_app login     # …或只针对某一条流程

这个 prompt 带着 agent 走一个分阶段、感知规模的闭环:

  1. 梳理业务线。 agent 用它自己的文件工具读取你的路由 + 导航,把一份清单写进 .hover/hover-map.md——这是大型应用的计划。
  2. 选一个范围。 如果你指定了就覆盖那条;否则它列出未覆盖的业务线,问你现在做哪个。
  3. 逐条覆盖流程。 每条:导航 → 快照 → 走真实流程(click_control / fill_control / …)→ 断言结果 → crystallize_spec
  4. 更新覆盖hover-map.md

第 3 步 —— 看 agent 操作

agent 通过 CDP 对你的调试版 Chrome 调用 Hover 的接地工具——用 browser_snapshot 读页面,再用 click_control / fill_control / select_control / check_control 操作,并对结果 assert_visible。因为它按 role+name 定位控件,驱动每个动作的那个 selector 正是被存下来的那个。

如果 agent 真的解决不了某件事——这是 bug 还是设计如此?这个业务术语是什么意思?——它会问你而不是瞎猜;当你确认一条持久规则时,它通过 record_fact 记住(见 你应用的测试知识)。

第 4 步 —— 结晶

一条流程验证通过的那一刻,agent 调用 crystallize_spec,Hover 就写出 __vibe_tests__/<slug>.spec.ts——确定性地,使用 getByRole / getByLabel / getByTestId。没有 LLM 写代码。文件的形态见 结晶成 spec

第 5 步 —— 不用 Hover 运行这个 spec

存下来的文件就是纯 @playwright/test。像跑任何 Playwright 测试一样跑它:

npx playwright test __vibe_tests__

这正是结晶的意义:AI 只编写测试一次,但存下来的 spec 在 CI 里以零 agent 参与永远运行。

接下来

  • MCP 工具 — 完整的接地工具集与 test_app prompt。
  • 测试知识 — Hover 在 .hover/ 下记住的关于你应用的东西。
  • 想要一个可视化界面?可选的 VS Code 驾驶舱 提供 Business Map 图 + Dashboard。它负责审阅——不驱动 agent。
  • 优化 spec — 可选的、经 diff 审阅的 AI 打磨过程。