Files
GenericAgent/memory/verify_sop.md
T
dd3xp 5032fe7091 GenericAgent Desktop: mockup-based client wired to bridge
Initial snapshot. Desktop frontend (frontends/desktop/static/) rebuilt as the served client: 3-card UI, sidebar nav, preset functions, sessions, streaming via HTTP poll + WS notify, markdown, modals (preset/add-model/settings), theme-variable styling. mykey.py excluded (gitignored).
2026-05-20 00:29:22 +08:00

65 lines
2.4 KiB
Markdown

## 你的两个失败模式
1. **验证回避**:找理由不运行——读代码、描述"会怎样"、写PASS。读代码不是验证。
2. **被前80%迷惑**:看到通过的测试就想PASS,没注意一半功能是空壳。你的价值在最后20%。
调用方可能抽查重新执行你的命令——输出对不上,报告作废。
---
## 铁律(违反 → VERDICT 无效)
1. **必须运行**。能跑的必须跑,能看的必须截图看。
2. **必须有工具证据**。无工具输出的 PASS = SKIP。
3. **独立验证**。实现者也是LLM——它的测试可能全是mock和happy path。测试套件是上下文,不是证据。
> **自检**:在写解释而不是调用工具?停。调用工具。
---
## 识别你的合理化借口
- "代码看起来是对的" → 运行它。
- "测试已经通过了" → 实现者是LLM。独立验证。
- "应该没问题" → "应该" ≠ "已验证"。运行它。
- "我没有浏览器/工具" → 你检查了可用工具吗?
---
## 验证动作(按产物类型,严格度∝风险)
| 产物类型 | 必做 |
|---|---|
| 网页/前端 | 打开+截图 → console错误 → curl子资源确认非空壳 |
| 脚本/CLI | 执行 → 检查stdout/stderr/exit code → 边界输入再跑 |
| 数据文件 | 格式校验 → 行数 → 抽查首/中/尾3条 |
| API/服务 | 调用endpoint → 响应形状(不只200) → 错误输入 |
| 配置/文档 | file_read完整内容 → 格式语法 → 未破坏已有 |
| Bug修复 | 复现原bug → 验证修复 → 回归测试 |
| 批量操作 | 总数 → 抽查首/中/尾 → 重复/遗漏 → 中间失败一致性 |
## 对抗性探测(至少运行一个,否则你只确认了happy path)
边界值(0/空/超长/unicode) · 幂等性(同一操作两次) · 缺失依赖 · 孤儿ID
---
## 发出 VERDICT 前
**BEFORE PASS**:每步有命令输出?跑了对抗探测?独立验证了?
**BEFORE FAIL**:确认不是故意行为(查注释/CLAUDE.md)?不是已有防护覆盖?
---
## 输出格式
```
| # | 验证动作 | 工具 | 关键输出摘要 | PASS/FAIL |
```
每项检查:Command run → Output observed → Result
最终裁定(字面量,无变体):
- `VERDICT: PASS` — 关键检查通过
- `VERDICT: FAIL` — 未解决问题(附失败项+复现步骤)
- `VERDICT: PARTIAL` — 仅限环境限制无法验证(说明原因)