agent-self-verification
Agent 闭环自验证工作流,在完成代码修改后自动执行"写代码→构建→验证UI→查日志→修复→再验证"的完整循环。当 Agent 完成功能开发、Bug 修复、UI 修改、API 变更或任何代码改动后,应主动触发此验证流程,确保改动真正生效且无副作用。适用于 Web 前后端项目的闭环验证。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Agent 闭环自验证工作流,在完成代码修改后自动执行"写代码→构建→验证UI→查日志→修复→再验证"的完整循环。当 Agent 完成功能开发、Bug 修复、UI 修改、API 变更或任何代码改动后,应主动触发此验证流程,确保改动真正生效且无副作用。适用于 Web 前后端项目的闭环验证。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | agent-self-verification |
| description | Agent 闭环自验证工作流,在完成代码修改后自动执行"写代码→构建→验证UI→查日志→修复→再验证"的完整循环。当 Agent 完成功能开发、Bug 修复、UI 修改、API 变更或任何代码改动后,应主动触发此验证流程,确保改动真正生效且无副作用。适用于 Web 前后端项目的闭环验证。 |
核心理念:写完代码不是终点,验证通过才算完成。 Agent 应像人类工程师一样,改完代码后"打开浏览器看看对不对、查看日志有没有报错、确认性能正常"。
每次完成以下任何改动后,必须进入验证循环:
┌─────────┐
│ 写代码 │
└────┬────┘
▼
┌─────────┐
│ 构建/部署 │ ← docker compose up --build / npm run build
└────┬────┘
▼
┌─────────────┐
│ 静态检查 │ ← Linter + TypeCheck
└────┬────────┘
▼
┌─────────────┐
│ UI 验证(眼睛) │ ← 浏览器快照 + 截图 + 控制台
└────┬────────┘
▼
┌──────────────────┐
│ 系统验证(听诊器) │ ← 容器日志 + 健康检查 + 网络请求
└────┬─────────────┘
▼
┌─────────┐ 失败 ┌─────────┐
│ 判定结果 │─────────→│ 定位修复 │──→ 返回"写代码"
└────┬────┘ └─────────┘
│ 通过
▼
┌─────────┐
│ 任务完成 │
└─────────┘
代码改动后,先确认构建成功:
# 前端项目
docker compose up --build -d <service-name>
docker logs <container-name> --tail 30
# 检查容器状态
docker ps --filter "name=<container-name>" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
判定标准:容器状态为 Up,无 Restarting,日志无 Error/Exception。
# 使用 ReadLints 工具检查已编辑文件
# 如果有 TypeScript,检查类型错误
docker exec <container-name> npx tsc --noEmit 2>&1 | tail -20
判定标准:无新增 linter 错误,无类型错误。
对于前端变更,使用浏览器 MCP 工具验证:
browser_navigate → 目标 URL
browser_snapshot → 获取页面结构(相当于 DOM "X光片")
browser_snapshot(interactive: true) → 检查交互元素是否存在且可操作
browser_is_visible(selector) → 确认关键元素可见
browser_get_input_value → 验证表单默认值
browser_click / browser_fill → 模拟用户操作
browser_snapshot(includeDiff: true) → 对比操作前后的页面变化
browser_console_messages → 检查是否有 JS 错误或警告
browser_network_requests → 检查 API 请求是否成功(无 4xx/5xx)
browser_take_screenshot(fullPage: true) → 截取完整页面
判定标准:
# 查看最近日志,过滤错误
docker logs <container-name> --since 2m 2>&1 | grep -iE "error|exception|traceback|failed"
# 后端 API 日志
docker logs <backend-container> --since 2m 2>&1 | tail -50
# API 可达性
curl -s -o /dev/null -w "%{http_code}" https://<domain>/api/health
# 响应时间
curl -s -o /dev/null -w "%{time_total}" https://<domain>/api/<endpoint>
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" <container-name>
判定标准:
向用户报告验证结果:
验证完成后,按此格式汇报:
验证结果:✅ 通过 / ❌ 失败
构建状态:✅ 容器正常运行
静态检查:✅ 无 linter/类型错误
UI 验证:✅ 页面元素正确,交互正常
- 控制台:无错误
- 网络请求:全部 2xx
系统验证:✅ 日志无异常
- 健康检查:200 OK
- 响应时间:0.3s
[如有截图附在此处]
| 变更类型 | 构建 | 静态检查 | UI验证 | 系统验证 |
|---|---|---|---|---|
| 前端 UI | ✅ | ✅ | ✅ 完整 | ⚡ 轻量 |
| 后端 API | ✅ | ✅ | ⚡ 轻量 | ✅ 完整 |
| 全栈变更 | ✅ | ✅ | ✅ 完整 | ✅ 完整 |
| 配置变更 | ✅ | - | ⚡ 轻量 | ✅ 完整 |
| 样式微调 | ✅ | ✅ | ✅ 截图 | - |
⚡ 轻量 = 只做基础检查(健康检查 + 控制台无错误)
--since 过滤,避免被历史日志干扰Go 语言项目的开发模式和最佳实践。当用户提到"写 Go 代码""Go 服务""Go 接口""goroutine""Go 测试"时使用。
macOS 桌面应用开发的模式和最佳实践。当用户提到"开发 Mac 应用""SwiftUI""Swift 代码""桌面应用""菜单栏应用"时使用。
创建或更新 Skill 的交互式 SOP,通过分步提问引导用户完成 Skill 设计与实现。当用户提到「创建 skill」「帮我做一个 skill」「更新 skill」时使用。
统一 AI 调用服务,三服务商策略(4sapi+sodao+OpenRouter),支持文本对话、图片理解、PDF/音视频分析、图像生成、流式输出、智能降级。当需要接入大语言模型或实现多模态 AI 功能时使用。
企微聊天记录查看方案,后端统一处理消息同步/解密/媒体下载/语音转文字,前端按业务场景分散在各模块。当需要展示聊天记录、实现会话历史查看或消息渲染时使用。
通用客户筛选组件,前后端一体化方案,支持沉默天数、标签、互动时间/次数、手动勾选、上传名单等多条件筛选。当需要 CRM 客户筛选、批量营销圈选、数据分析分群时使用。