Workflows
验证代码变更
如何使用 Munk AI 在本地或 CI 中自动验证代码变更对实际产品行为的影响。
Munk AI 的能力远超静态代码分析。verify change 工作流能将你的代码改动转化为结构化、可执行的验证任务。它会自动启动你的应用,执行必要的操作来覆盖你的改动,并验证预期行为是否生效,同时确保没有破坏周边功能。
适用场景
- 合并代码前: 在提交 PR 前,获得代码在真实浏览器或设备上运行正常的信心。
- 作为 AI Agent 的手脚: 为 AI 编程助手提供机器友好的接口,让它们能自主验证刚刚写好的代码。
- 获取可执行的反馈: 相比于泛泛的“LGTM”评论,你能拿到结构化的结论、执行轨迹和报错截图。
前置准备
在运行验证之前,请确保:
- 已安装并配置好 Munk CLI。
- 你的目标测试环境已就绪(例如:本地 Web 开发服务器已在
localhost:3000运行,或 Android 模拟器已启动)。
典型示例
推荐通过传递 JSON 请求文件(Request File)来进行变更验证。这样可以保持配置的可复用性,并避免在终端中处理复杂的转义字符。
munk verify change \
--request-file ./verify-request.json \
--config ./munk.yaml
请求文件配置 (verify-request.json)
请求文件定义了改动了什么以及需要验证哪些用例。以下是一个 Web 项目的最小、可直接复制的示例:
{
"app_id": "munk-web-site",
"change_summary": "修复 Header 重构后的文档页面导航跳转",
"app_target": {
"app_id": "munk-web-site",
"platform": "web",
"web": {
"base_url": "http://127.0.0.1:3000/",
"origin": "http://127.0.0.1:3000"
},
"launch_context": {
"browser": "chromium",
"headless": "true"
}
},
"provided_cases": [
{
"case_id": "docs-header-navigation-works",
"title": "文档顶部导航正常工作",
"intent": "验证 Header 改动后,用户能否从首页通过顶部导航正常跳转到文档页面。",
"expected": [
"首页成功加载。",
"点击顶部导航的 Docs 入口,页面跳转至文档页。",
"跳转后的页面展示文档内容,而不是首页的 Hero 区域。"
],
"runner_goal": "打开官网首页,点击顶部导航的 Docs 入口,验证是否成功展示文档页面。"
}
],
"enable_plan_agent": false
}
核心字段解析
app_target: 告诉 Munk AI 如何连接到你的应用。如果是 Android 项目,你需要使用"platform": "android"并指定"package_name"。change_summary/changed_files: 提供关于你刚刚修改了哪些内容的上下文。provided_cases: 明确的测试指令。一个优秀的验证用例应该包含修复路径(改动生效了吗?)和回归路径(周边功能被破坏了吗?)。enable_plan_agent: 如果希望 Munk AI 自动为你规划额外的回归测试覆盖率,请设置为true。如果只想严格执行你提供的用例,请设置为false。
运行过程与结果
按下回车后,Munk AI 会执行以下步骤:
- 分析上下文: 读取你的
change_summary和provided_cases。 - 拉起目标应用: 打开
app_target中定义的 Chromium 浏览器(或 Android 应用)。 - 执行与观测: 执行
runner_goal中描述的动作,并持续捕获屏幕状态。 - 断言验证: 检查
expected中的条件是否被满足。
执行完成后,Munk AI 会在你的工作区输出结构化的产物:
report.json: 最终的验证结论(passed通过、failed失败 或inconclusive证据不足)。diagnostics.json: 系统日志和执行细节,方便排查问题。artifact_manifest.json: 包含运行期间收集的截图和轨迹链接。
