← ClaudeAtlas

e2e-http-verifylisted

用 cdt-cli HTTP server + vite proxy + 浏览器 `?http=1` 入口跑端到端真数据验证**用户可感知 + HTTP transport 暴露**路径的修法。**只要**用户说"用 cli 起 server / 用 http 接口验证 / 浏览器自动化测试 / 真数据 e2e / chrome devtools 端到端 / 验证修法 / 用户感知 bug 复现 / 桌面端看不到修复 / sidebar 显示异常 / 切 group 慢 / 列表渲染 / 卡顿"或显式 `/e2e-http-verify`,**都用这个 skill**。**agent 在以下时机也宜自动调用**(无需用户念关键词):(a) 改完 HTTP route / SSE 路径 / list_sessions / sidebar 渲染 / IPC 字段被前端消费的路径准备宣告完成前;(b) 用户报"我重启了桌面端还是没修好" / "看不见修复" / "刷新没用"。**不适用**(避免 over-trigger):纯 Tauri 专属 API(通知 / 托盘 / setBadgeCount)/ 纯 backend 内部重构 / 没有用户可见路径的纯算法改动 / 纯样式微调 / bump version / docs。避免每次重新摸 vite proxy / SSE prelude / BrowserTransport 路由 / 端口冲突 / chrome-devtools mcp evaluate_script 陷阱,也避免修完只跑 unit test + mockIPC 就声称完成(mockIPC fixture ≠ 真后端数据,桌面端 binary 不一定用上新代码)。
snowzhaozhj/claude-devtools-rs · ★ 1 · Testing & QA · score 67
Install: claude install-skill snowzhaozhj/claude-devtools-rs
# e2e-http-verify 修 backend / Svelte 组件 / IPC 字段消费等**任何行为类**改动后,在真浏览器跑真后端看一遍再宣告完成。unit test + mockIPC 只验单点,端到端只能这里验。 **只在 dev 调试场景用**(不影响 release bundle)。用户桌面 Tauri app 走 IPC 不走 HTTP server,本 skill 验证通过 ≠ 用户桌面端自动修好——结尾要明确告诉用户重启 `cargo tauri dev` 才能看到修复。 ## 何时用 / 何时跳 | 用 | 跳 | |---|---| | backend 改 IPC 字段 / cursor / cache / metadata / list_sessions / SSE | 改 Tauri 专属 API(通知 / 托盘 / setBadgeCount)—— HTTP transport 不暴露 | | 前端改 sidebar / Sessions 列表 / SessionDetail / store 状态机 / IPC 消费 | 纯样式微调(颜色 / 间距)—— vitest snapshot + 人眼看截图够了 | | 用户报 sidebar / 切 group / 切 worktree / 列表卡顿 | 改 nothing 只是"看看效果" → 直接 chrome-devtools mcp 打开桌面 app | | PR push 前 final smoke | 改的是只在 Tauri runtime 用的 IPC(HTTP 路由没暴露)| ## Quick Start ```bash # 起 cdt-cli + vite + 健康检查(首次 build 30-90s,incremental ~10s) bash .claude/skills/e2e-http-verify/scripts/start.sh # 收尾(不动桌面 Tauri app) bash .claude/skills/e2e-http-verify/scripts/stop.sh ``` `start.sh` 把"端口归属判定 / cdt-cli 起 / vite 起 / proxy 健康检查"封进去。看到 `✓ Ready` 才进 Step 2。 **复用判断**(上一轮没收尾 + 代码没改时跳冷启): ```bash lsof -iTCP:3456 -sTCP:LISTEN && lsof -iTCP:5173 -sTCP:LISTEN && \ curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:5173/api/projects # 三件都 OK + 200 → 直接跳 Step 2/3 省 10s ``` **改了代码必须**: - 改 `vite.config.ts` → `pkill -f vite` 重起(vite config 不 hot reload) - 改 backend Rust → `pkill -f 'target/(debug|release)/cdt( |$)'` + 重跑 start.sh(否则跑旧 binary) - 改 Svelte → vite HMR 自动;reload 浏览器即可 - 改 main.ts / transport.ts → 浏览器 full reload(`navigate type=relo