Hermes-agent

This commit is contained in:
Zakaria
2026-06-14 14:30:48 -04:00
commit dac4b88b94
5058 changed files with 1884848 additions and 0 deletions
@@ -0,0 +1,209 @@
---
title: "对抗性 UX 测试 — 扮演产品最难搞的技术抵触用户"
sidebar_label: "对抗性 UX 测试"
description: "扮演产品最难搞的技术抵触用户"
---
{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
# 对抗性 UX 测试
扮演产品最难搞、最抵触技术的用户。以该角色身份浏览应用,找出所有 UX 痛点,再通过实用主义过滤层将真实问题与噪音区分开来。仅针对真实问题创建可执行的工单。
## Skill 元数据
| | |
|---|---|
| 来源 | 可选 — 通过 `hermes skills install official/dogfood/adversarial-ux-test` 安装 |
| 路径 | `optional-skills/dogfood/adversarial-ux-test` |
| 版本 | `1.0.0` |
| 作者 | Omni @ Comelse |
| 许可证 | MIT |
| 平台 | linux, macos, windows |
| 标签 | `qa`, `ux`, `testing`, `adversarial`, `dogfood`, `personas`, `user-testing` |
| 相关 skill | [`dogfood`](/user-guide/skills/bundled/dogfood/dogfood-dogfood) |
## 参考:完整 SKILL.md
:::info
以下是 Hermes 在触发该 skill 时加载的完整 skill 定义。这是 agent 在 skill 激活时看到的指令内容。
:::
# 对抗性 UX 测试
扮演产品的最差情况用户——那个讨厌技术、不想用你软件、并且会找各种理由抱怨的人。然后通过实用主义过滤层筛选他们的反馈,将真实的 UX 问题与"我讨厌电脑"的噪音区分开来。
可以把它理解为自动化的"妈妈测试"——但更愤怒。
## 为什么有效
大多数 QA 找的是 bug。这个方法找的是**摩擦点**。一个技术上正确的应用对真实用户来说仍可能无法使用。对抗性角色(persona)能捕捉到:
- 对开发者有意义但用户看不懂的术语
- 完成基本任务需要太多步骤
- 缺少引导或"顿悟时刻"
- 无障碍问题(字体大小、对比度、点击目标)
- 冷启动问题(空状态、无演示内容)
- 阻碍转化的付费墙/注册摩擦
**实用主义过滤器**(第 3 阶段)是让这个方法有用而不只是有趣的关键。没有它,你会因为爷爷搞不定 PDF 就在每个页面都加一个"打印此页"按钮。
## 使用方法
告诉 agent
```
"Run an adversarial UX test on [URL]"
"Be a grumpy [persona type] and test [app name]"
"Do an asshole user test on my staging site"
```
你可以提供一个 persona,也可以让 agent 根据你的产品目标受众自动生成一个。
## 第一步:定义 Persona
如果未提供 persona,通过回答以下问题来生成一个:
1. **谁是这个产品最难搞的用户?**(50 岁以上,非技术岗位,几十年来一直用"老方法"做事)
2. **他们的技术熟练程度如何?**(越低越好——只用 WhatsApp、用纸质笔记本、邮箱是老婆帮设置的)
3. **他们需要完成的那一件事是什么?**(他们的核心工作,不是你的功能列表)
4. **什么会让他们放弃?**(点击太多、术语、速度慢、令人困惑)
5. **他们沮丧时怎么说话?**(直接、带脏话、不屑一顾、叹气)
### 好的 Persona 示例
> **"大迈克"麦卡利斯特** — 58 岁的力量与体能教练。只用 WhatsApp,仅此而已。他的"电子表格"是一本纸质笔记本。"如果我 10 秒内搞不明白,我就回去用我的笔记本。"需要记录 25 名球员的训练结果。讨厌小字、术语和密码。
### 差的 Persona 示例
> "一个不喜欢这个应用的用户"——太模糊,没有约束,没有声音。
Persona 必须**足够具体,能在 20 分钟的测试中保持角色一致性**。
## 第二步:成为那个混蛋(以 Persona 身份浏览)
1. 阅读所有可用的项目文档,了解应用背景和 URL
2. **完全代入 persona**——他们的挫败感、局限性、目标
3. 使用浏览器工具导航到应用
4. **尝试完成 persona 的实际任务**(不是功能巡览):
- 他们能做到想做的事吗?
- 完成任务需要多少次点击/页面跳转?
- 什么让他们困惑?
- 什么让他们愤怒?
- 他们在哪里迷路?
- 什么会让他们放弃,回到原来的方式?
5. 测试以下摩擦类别:
- **第一印象** — 他们会不会在落地页就放弃?
- **核心工作流** — 他们最常需要做的那一件事
- **错误恢复** — 他们做错了什么会发生什么?
- **可读性** — 文字大小、对比度、信息密度
- **速度** — 感觉比他们现在的方法更快吗?
- **术语** — 有他们看不懂的行话吗?
- **导航** — 他们能找到回去的路吗?他们知道自己在哪里吗?
6. 对每个痛点截图
7. 在每个页面检查浏览器控制台的 JS 错误
## 第三步:发泄(以角色身份写反馈)
以 **PERSONA 的身份**写反馈——用他们的声音,带着他们的挫败感。这不是 bug 报告,这是一个真实的人在发泄。
```
[PERSONA NAME]'s Review of [PRODUCT]
Overall: [Would they keep using it? Yes/No/Maybe with conditions]
THE GOOD (grudging admission):
- [things even they have to admit work]
THE BAD (legitimate UX issues):
- [real problems that would stop them from using the product]
THE UGLY (showstoppers):
- [things that would make them uninstall/cancel immediately]
SPECIFIC COMPLAINTS:
1. [Page/feature]: "[quote in persona voice]" — [what happened, expected]
2. ...
VERDICT: "[one-line persona quote summarizing their experience]"
```
## 第四步:实用主义过滤器(关键——不可跳过)
走出 persona。以产品人的身份评估每条投诉:
- **红色:真实 UX BUG** — 任何用户都会遇到这个问题,不只是爱抱怨的用户。修复它。
- **黄色:有效但优先级低** — 真实问题,但只影响极端用户。记录下来。
- **白色:Persona 噪音** — 是"我讨厌电脑"在说话,不是产品问题。跳过。
- **绿色:功能需求** — 投诉中隐藏的好想法。考虑一下。
### 过滤标准
1. 一个 35 岁、有能力但很忙的用户会有同样的投诉吗?→ 红色
2. 这是真实的无障碍问题(字体大小、对比度、点击目标)吗?→ 红色
3. 这是"我想让它像纸一样工作"的数字化抵触吗?→ 白色
4. 这是 persona 偶然发现的真实工作流低效问题吗?→ 黄色或红色
5. 修复这个问题会给 80% 没有问题的用户增加复杂性吗?→ 白色
6. 这条投诉是否揭示了缺失的引导时刻?→ 绿色
**此过滤器是强制性的。** 永远不要将原始 persona 投诉直接作为工单提交。
## 第五步:创建工单
仅针对**红色**和**绿色**条目:
- 清晰、可执行的标题
- 包含 persona 的原话(有趣且令人印象深刻)
- 其背后的真实 UX 问题(客观)
- 建议的修复方案(可执行)
- 标签/标记:"ux-review"
针对**黄色**条目:创建一个汇总所有备注的综合工单。
**白色**条目仅出现在报告中,不创建工单。
**每次会话最多 10 个工单** — 专注于最严重的问题。
## 第六步:报告
交付内容:
1. Persona 发泄内容(第三步)——有趣且直击痛点
2. 过滤后的评估(第四步)——务实且可执行
3. 已创建的工单(第五步)——附链接
4. 关键问题的截图
## 技巧
- **每次会话只用一个 persona。** 不要混合视角。
- **在第二步和第三步期间保持角色。** 只在第四步才打破角色。
- **优先测试核心工作流。** 不要被设置页面分散注意力。
- **空状态是金矿。** 新用户体验揭示的摩擦最多。
- **最好的发现是 persona 在做其他事情时意外发现的红色条目。**
- **如果 persona 零投诉,说明你的 persona 技术水平太高了。** 让他们更老、更没耐心、更固执。
- **在演示、发布前或发布一批功能后运行此测试。**
- **尽可能以新用户身份注册。** 不要使用预置的管理员账户——冷启动体验才是大多数摩擦所在。
- **零白色条目是一个信号,不是失败。** 如果实用主义过滤器没有发现噪音,说明你的产品有真实的 UX 问题,而不只是一个爱抱怨的 persona。
- **测试结束后再查看项目文档中的已知问题。** 如果 persona 发现了一个已在已知问题列表中的 bug,这实际上是最有力的发现——这意味着团队知道这个问题,但从未真正感受过用户的痛苦。
- **订阅/付费墙测试至关重要。** 用已过期的账户测试,而不只是活跃账户。"无法付款时会发生什么"的体验揭示了产品是否尊重用户,还是扣押他们的数据。
- **统计完成 persona 那一件核心任务所需的点击次数。** 如果超过 5 次,无论 persona 的技术水平如何,这几乎总是一个红色发现。
## 各行业 Persona 示例
以下是起点——请根据你的具体产品进行定制:
| 产品类型 | Persona | 年龄 | 关键特征 |
|-------------|---------|-----|-----------|
| CRM | 养老院院长 | 68 | 文件柜就是现在的 CRM |
| 摄影 SaaS | 农村婚礼摄影师 | 62 | 电话接单,纸质开票 |
| AI/ML 工具 | 百货公司采购 | 55 | 被 3 个失败的科技创业公司坑过 |
| 健身应用 | 老派健身教练 | 58 | 纸质笔记本、手指粗、眼睛不好 |
| 会计 | 家庭面包店老板 | 64 | 一鞋盒收据,讨厌订阅制 |
| 电商 | 集市摊主 | 60 | 只收现金,智能手机只用来打电话 |
| 医疗 | 资深全科医生 | 63 | 口述笔记,护士负责操作电脑 |
| 教育 | 资深教师 | 57 | 粉笔加讲授,活页夹里的讲义 |
## 规则
- 在第二步和第三步期间保持角色
- 真实地刻薄但公平——找真实问题,不要制造问题
- 实用主义过滤器(第四步)是**强制性的**
- 每条投诉都需要截图
- 每次会话最多 10 个工单
- 在 staging/已部署的应用上测试,不要在本地开发环境测试
- 一个 persona,一次会话,一份报告