# 角色委派 prompt 模板（web 验证者）

[English](delegation-prompts.md) | 中文

> 这是**模板**，尖括号处按你自己的项目替换。角色定义在 `<项目根>/.dsh/roles/<id>.md`
> （frontmatter 是 `provider`/`model`/`reasoningEffort`/`tools`，正文是 persona）。
> 角色文件改动**不需要重启 `dsh web`**（每次提示词组装按 mtime 读取）。

---

## 0. 主代理侧（你在项目会话里说的话）

**自然触发**（主代理会照角色目录自己选角色）：

```text
用 web-verifier 验证「<页面/功能>」这次改动，跑 <你的 E2E 命令>，按 <你的验证 SOP> 的全覆盖口径给我结论；你不要自己跑浏览器。
```

**想同时明确边界时**加一句：

```text
验证者只做验证、不改文件、不碰后端；服务如果要重启由你（主代理）先做。
```

---

## 1. web-verifier 派发模板（主代理 → 子代理）

```text
【唯一任务】用真实浏览器验证 <页面/功能> 的这次改动是否可用，并给出全覆盖结论。

【目标】
- 项目根：<项目根>
- 前端目录：<前端目录>（dev 地址 <dev 地址>）
- 后端：<后端地址>（你只读观察，不启停）
- 验证 SOP（先读）：<项目根>/.dsh/skills/<你的验证技能>/SKILL.md

【步骤】
1. 若项目对共享资源（dev server、设备等）有租约/互斥约定：先按约定取锁并在每步刷新心跳，任务结束立即释放；只读探活不需要锁。
2. 先读项目说明（AGENTS.md 之类）与上面的 SOP，确认服务状态：<状态检查命令>。
3. 跑用例：cd <前端目录> && <E2E 命令>；账号见项目说明。
4. 若 SOP 要求「功能清单 → 用例」映射表：先补齐再跑，逐项覆盖页面内每个可交互控件（搜索/筛选/重置、每个行操作、弹层与抽屉内每个控件）。
5. 浏览器 console 断言：出现 [Global Error] / 未捕获异常即判失败；限流类噪声（如 429）可过滤，但若影响断言须如实回报。
6. 若项目支持多语言：用真实控件切换语言，断言界面文案随之变化，再切回。

【验收】
- <E2E 命令> 的结果 + 按项目口径的**逐项**覆盖结论（覆盖/未覆盖）
- 覆盖不到的控件必须单列「未覆盖清单」并置 WAITING，不得以「N passed」收尾
- 失败时附上可复现的 DOM/日志/截图或 trace 路径

【禁止】
- 修改任何项目文件（edit/write/落盘全禁；仅租约协议自身的取锁目录例外）
- 启停/重启后端、跑迁移或重置数据库、直接读写数据库、用 curl/API 造数
- 另起 dev server 或改端口；不要绕过项目的启动脚本自己拉起服务
- 调用与本任务无关的工具（其它 MCP 工具、委派类工具等）

【回报】1 做了什么（以「工具名 + 目标路径」开头） 2 观察结果（用例名 + passed/failed + 覆盖结论） 3 问题与建议 4 状态：DONE 或 WAITING
```
