mcpField
A
audit-ux

audit-ux

github.com/kensaurus设计与 UI940 次安装1 周前更新
代码仓库

关于 audit-ux

audit-ux 是面向 AI 编码 Agent 的单页 UX 审计技能,结合尼尔森启发式、微文案评估与 Google HEART。它强调先理解产品与用户流程,再基于可观察证据分类问题并评定严重程度。

主要功能

  1. 01逐页检查 UX 启发式
  2. 02评估微文案与 HEART 指标
  3. 03先梳理用户及数据流程
  4. 04依据证据分类并定级
  5. 05报告前进行自我检查

适用场景

  1. 01检查页面提交时的状态反馈
  2. 02发现表单中的错误预防问题
  3. 03审查错误提示与恢复指引

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kensaurus/skills --skill audit-ux

安装后在 Claude Code 中输入/audit-ux确认已加载。

附带文件references/details.md

详细介绍

UX 审计技能

自由度:混合——步骤 0、2–5 为 [HIGH freedom];步骤 1 研究 JSON 和每个 Playwright 步骤为 [LOW freedom — run exactly]。 进行任何浏览器交互前,请先阅读 protocol-browser-anti-stall。

本技能与相邻技能的区别

技能负责范围
audit-ux(本技能)单页 UX 审计:NN/g 启发式原则、微文案审查、Google HEART
audit-ux-journeys跨页面 UX 审计:用户故事、任务完成情况和 IA
enhance-web-ux基于 NN/g 原则改进一个现有页面的流程
audit-uiux-design-system视觉系统一致性:设计令牌、变体、颜色、字体、间距、暗色模式
thirdparty-ui-ux-pro-max第三方样式目录:通过脚本提供的调色板、字体排版和 UX 指南

推理方式

  1. 观察——引用截图、文案或代码行
  2. 解读——这会在流程的此刻对人产生什么影响?
  3. 分类——启发式原则失效/定律违背/微文案问题/无需修改
  4. 严重性——阻碍成功时刻 = P0;可恢复的摩擦 = P1;小问题 = P2

示例

**观察:**发票提交按钮始终处于启用状态;没有提示;POST /invoices 请求正在处理中,已持续 4s。 **解读:**再次点击会创建重复发票(H1 + H5,涉及资金的流程)。 **分类:**对需要建立信任的写入操作,启发式原则失效。 **严重性:**P0——涉及资金的操作可重复提交。 发现:/invoices/new | H1/H5 | P0 | 无待处理状态 | 禁用按钮 + 显示提示。

报告前的自我批评 [LOW freedom — do not skip]

  1. 有证据支持——提供截图或引用文案,而不是“感觉令人困惑”
  2. 针对单页——跨页面 IA/用户故事问题 → audit-ux-journeys
  3. 严重性有依据——P0 会阻碍已记录的成功时刻
  4. 归属正确——断点问题 → audit-responsive;空状态/错误状态问题 → audit-ui-states
  5. 先了解上下文——未完成步骤 0 中对人和流程的分析,不得提出发现

以上下文为先

评估启发式原则前,先了解使用者是谁(具体状态,而非“用户”)、该页面在用户旅程中的位置、数据如何从输入流经 API 和 DB 再呈现在屏幕上,以及情绪变化轨迹。步骤 0 为必做项。


步骤 0:深入了解产品和流程

0a. 了解业务和使用者背景

阅读 README、落地页、营销文案及所有引导流程,以回答:

  • 这解决了什么问题?(不是功能,而是缓解了使用者的什么痛点)
  • 主要使用者是谁?(人口统计特征、技术水平、使用时的情绪状态)
  • 替代方案是什么?(没有这个产品时,人们会怎么做?用电子表格?打电话?什么也不做?)
  • 成功时刻是什么?(使用者得到所需内容时的“顿悟”时刻)
  • 信任模式是什么?(使用者是否会把资金、健康数据或业务数据托付给这个产品?)
0b. 梳理流程、路由和情绪变化轨迹

针对每项核心任务,追踪数据如何从使用者输入开始,经过客户端验证、API 调用、服务端处理、数据库、响应和客户端更新,最终转化为使用者看到的反馈(通过 api/、actions/、hooks/use*、lib/ 以及 fetch|axios|ky|useSWR|useQuery|trpc 调用位置找出集成点)。标记对延迟敏感、容易出错和需要建立信任的环节——H1、H5 和 H9 的问题都来自这些环节。根据框架发现路由(app/**/page.tsx、pages/**/*.tsx、src/routes/、router.*),并记录范围内页面的导航结构(扁平/分层/中心辐射式)、深度、交叉链接和死胡同;跨页面 IA 问题应交由 audit-ux-journeys 负责。针对每个核心流程,记录进入时的情绪、困惑或焦虑加剧的节点、产品赢得信任的节点、峰值时刻(最好或最糟)以及流程的结束方式。

0c. 记录发现

用最合适的形式写一段简短内容:产品类型、使用者的问题、主要使用者及其情绪背景、最重要的核心任务、成功时刻、信任级别(资金/数据/时间/声誉)、页面数量、身份验证模式、本地化/i18n,以及已知的延迟或易错环节。


第 1 步:研究当前 UX 标准

1a. NN/g — 可用性启发式原则和方法
firecrawl:firecrawl_search
{
 "query": "site:nngroup.com heuristic evaluation checklist [current year]",
 "limit": 5,
 "sources": [{ "type": "web" }]
}
1b. Intuit 内容设计 — 微文案原则
firecrawl:firecrawl_search
{
 "query": "site:contentdesign.intuit.com UX writing principles",
 "limit": 5,
 "sources": [{ "type": "web" }]
}

抓取最相关的结果,获取详细的写作指南。

1c. UX 法则 — 交互心理学
firecrawl:firecrawl_scrape
{
 "url": "https://lawsofux.com",
 "formats": ["markdown"],
 "onlyMainContent": true
}
1d. 特定领域的 UX 研究
firecrawl:firecrawl_search
{
 "query": "<PRODUCT_TYPE> UX best practices usability patterns [current year]",
 "limit": 5,
 "sources": [{ "type": "web" }]
}

抓取最佳结果,了解特定领域的 UX 模式。


第 2 步:Nielsen 的 10 条可用性启发式原则(深入评估)

对每条启发式原则进行代码分析和实时浏览器验证。

H1:系统状态的可见性

要在代码中查找的内容:

在 *.tsx 中搜索反馈模式:loading|isLoading|isPending|skeleton|Skeleton|spinner|Spinner (加载状态);progress|Progress|step.*of|currentStep(多步骤进度); toast|Toast|notification|Notification|snackbar(用户通知)。

要在浏览器中验证的内容:

信号通过未通过
加载状态获取数据期间显示骨架屏/加载指示器空白屏幕或界面冻结
表单提交按钮显示加载状态,并提供成功/错误反馈没有反馈,用户再次点击
进度指示多步骤流程显示步骤数用户不知道自己进行到哪一步
当前导航项高亮显示当前页面/部分未指示当前位置
实时更新提供乐观 UI 或轮询反馈数据过时,没有刷新提示
H2:系统与现实世界的匹配

要在代码中查找的内容:

在 *.tsx 中搜索与文案质量相关的 TODO:TODO.*wording|TODO.*copy|TODO.*label|TODO.*text(不区分大小写)。

要在浏览器中验证的内容:

信号通过未通过
标签和术语使用用户预期的领域适用语言技术术语、内部代号
图标使用普遍认可的图标,或为图标添加标签使用含义不明且没有文本标签的图标
数据格式日期、货币和数字符合用户的区域设置ISO 日期、原始数字、货币错误
逻辑分组按照用户的心智模型组织信息按数据库架构或开发便利性组织信息
隐喻借助现实世界的类比帮助理解生硬的隐喻造成困惑
H3:用户控制权和自由

要在代码中查找的内容:

在 *.tsx 中搜索紧急退出模式:onCancel|handleCancel|onClose|handleClose|onDismiss (取消/关闭处理程序);undo|Undo|revert|Revert(撤销操作); confirm.*delete|confirm.*remove|AlertDialog|ConfirmDialog(破坏性操作保护)。

要在浏览器中验证的内容:

信号通过未通过
关闭模态框提供关闭按钮、支持 Escape 键和点击背景关闭无法关闭,被困在模态框中
放弃表单返回按钮可用,草稿已保存切换页面时数据丢失
破坏性操作确认对话框清楚说明操作后果单击即删除,且无法撤销
多步骤流程可返回上一步且不丢失数据只能前进
撤销重要操作后提供撤销选项不可逆的更改没有警告
H4:一致性与标准

要在浏览器中验证的内容:

信号通过未通过
按钮层级一致地使用主要/次要/幽灵按钮按钮样式随意
术语同一操作始终使用相同标签同一操作有时称为“保存”,有时称为“提交”“确认”或“应用”
布局模式不同视图的页面结构保持一致每个页面的布局逻辑都不同
交互模式相同手势始终产生相同结果点击有时跳转,有时打开模态框
平台惯例遵循 Web 惯例(链接带下划线,表单模式符合惯例)自定义模式打破用户预期
H5:预防错误

在代码中查找:

在 *.tsx 中搜索预防模式:disabled.*(!|=.*false)|isDisabled|isInvalid (禁用/无效状态);required|min.*length|max.*length|pattern=(输入约束)。 检查 package.json 中的验证库:zod|yup|joi|superstruct|valibot。

在浏览器中验证:

信号通过未通过
输入约束日期选择器(而非自由文本)、为已知选项提供下拉菜单结构化数据使用自由文本
行内验证失焦/更改时验证,在提交前完成仅在提交时验证
危险操作保护要求确认;关键操作需输入指定文本确认单击即可执行不可撤销的操作
默认值智能默认值减少所需输入所有字段均为空,需要用户猜测
禁用状态表单无效时禁用按钮,并说明原因按钮可用,但操作静默失败
H6:识别而非回忆

在浏览器中验证:

信号通过未通过
导航导航中可见所有主要分区功能隐藏在深层菜单中
搜索大型数据集提供搜索功能用户必须滚动/浏览才能找到内容
面包屑层级内容中提供面包屑用户在深层页面中丢失上下文
最近访问项显示最近访问的项目必须靠记忆从头导航查找
上下文帮助工具提示、占位符可解释字段标签缺少上下文
H7:灵活高效地使用

在代码中查找:

在 *.tsx 中搜索效率模式:keyboard|shortcut|hotkey|useHotkeys|Cmd\+|Ctrl\+ (键盘快捷键);bulk|batch|selectAll|multiSelect(批量操作)。

在浏览器中验证:

信号通过未通过
键盘快捷键提供面向高级用户的快捷键只能使用鼠标交互
批量操作支持多选、批量操作只能逐项操作
筛选与排序数据密集型页面支持筛选/排序必须手动查找
自定义用户可以配置视图/偏好设置一种设置适用于所有人
快捷操作常见任务可在 1-2 次点击内完成核心任务深藏在菜单中
H8:美观简洁的设计

在浏览器中验证:

信号通过未通过
信息密度渐进式展示,按需展开所有内容一览无余
视觉层级主要/次要/次次要内容层次分明所有内容的视觉权重相同
留白分区之间留有舒适空间布局拥挤、密集
CTA每个视图有 1 个明确区分的主要操作多个 CTA 彼此争抢注意力
内容优先级最重要的内容优先显示/突出展示关键信息藏在首屏以下
H9:帮助用户识别、诊断和恢复错误

在代码中查找:

在 *.tsx 中搜索错误处理模式:error.*message|errorMessage|Error.*:.*'(错误 消息字符串);try.*catch|\.catch\(|onError(捕获位置);fallback|ErrorBoundary|error\.tsx (回退组件——列出匹配到的文件,而不仅是数量)。

在浏览器中验证:

信号通过未通过
错误措辞使用通俗易懂的语言,不含代码“错误 500”、“ECONNREFUSED”、原始堆栈跟踪
具体程度明确说明出了什么问题“出了点问题”
恢复操作建议用户接下来可以采取的操作没有出路,用户必须猜测
行内错误输入框附近显示字段级错误表单顶部只显示一条错误
空状态提供有帮助的空状态和后续操作空白页面、“无数据”
H10:帮助与文档

在代码中查找:

搜索 *.tsx 中的应用内帮助:Tooltip|tooltip|HelpCircle|InfoIcon|help.*text|aria-describedby (上下文帮助);onboarding|tour|walkthrough|guide|Onboarding(引导流程)。

在浏览器中验证:

信号通过未通过
上下文帮助复杂字段或功能配有工具提示没有说明,用户只能猜
引导为首次使用的用户提供引导用户直接面对复杂界面
文档可在应用内访问帮助必须搜索外部文档
输入引导占位符、提示文本、格式示例输入框没有任何提示

第 3 步:UX 法则评估

法则原则检查内容如何修复违规问题
雅各布定律用户期待你的网站与其他网站的使用方式相同导航、表单模式、结账流程是否遵循平台惯例通过 Firecrawl 研究 3 个竞争对手,采用其常见模式
菲茨定律更大、更近的目标点击起来更快主要 CTA 尺寸是否足够大,是否避开角落。触控目标 ≥44px增大 CTA 尺寸,将主要操作移至移动端自然的拇指操作区域
希克定律需要 权衡 的选项越多,决策时间越长用户需要评估的选项集(套餐、操作、筛选条件)是否经过分组、分阶段呈现或设有默认选项。已知项目查询(国家、州/省)不适用:这类查询应使用搜索对选项分组,基于合理依据预选一项,将大量次要选项隐藏在“更多”后方;查询使用输入联想
米勒定律工作记忆可容纳约 4–7 个组块不应要求用户在不同屏幕间依靠记忆;代码应分组显示并配有复制按钮;字段应保留可见标签。不限制可见菜单项数量:可见菜单是用来阅读的,而不是记忆的保留标签,汇总先前的选择,将代码分组,为字段组添加标签
冯·雷斯托夫效应与众不同的项目更容易被注意到每个视图中只突出显示一个实心强调操作将相互竞争的 CTA 降级为描边或幽灵样式
目标梯度效应 / 蔡格尼克效应可见的进度和未完成的任务会促使用户完成目标多步骤流程应如实显示当前位置和总步骤数;重新加载和返回后仍应保留输入内容根据实际状态显示“第 2 步,共 3 步”,自动保存草稿(绝不保存卡号或验证码)
认知负荷尽量减少心智投入没有不必要的字段,步骤之间无需依赖记忆从默认视图中移除可选字段,只显示当前所需内容
审美—易用性效应美观会让人觉得更易用第一印象能带来信心为落地页和关键流程打磨视觉效果。展现个性,而不仅仅是正确
特斯勒定律复杂性无法消除,只能转移为用户简化复杂任务,而不是把复杂性推给用户使用智能默认值、自动检测,并渐进式展示复杂功能
多尔蒂阈值响应时间低于 400ms 时,效率会提高交互是否感觉即时?使用乐观 UI、骨架屏、预取和感知性能优化技巧
波斯特尔定律接受输入时应灵活灵活解析输入内容(电话、日期、大小写)接受多种输入格式,自动调整格式,不要拒绝有效的变体
峰终定律人们会根据高峰体验和结尾来评价体验成功时刻是否令人满意?错误时刻是否得到了妥善处理?庆祝任务完成(彩纸动画、明确的确认信息)。弱化错误带来的负面感受

对于原生移动应用,还要评估:主要操作是否位于拇指操作区域,触控目标是否 ≥ 44pt / 48dp,标签页目标是否为 3–5 个,每个可点击元素是否都有按压反馈,是否仅在确认操作时触发触觉反馈,正文是否 ≥ 16sp。对此的修复流程为 enhance-mobile-native-feel。


第 4 步:内容与微文案审核(Intuit 内容设计原则)

4a. 语气和风格
原则符合不符合
对话式读起来像是在和朋友交谈读起来像法律文件或机器人说的话
主动语态“我们已保存你的更改”“你的更改已由系统保存”
使用第二人称对用户使用“你”,对产品使用“我们”使用第三人称、被动表达
使用缩略形式自然地使用缩略形式(“don't”“we'll”)使用生硬正式的语言(“do not”“we will”)
4b. 清晰准确
原则符合不符合
用词具体“我们现在无法连接到 Square”“出了点问题。请稍后重试”
术语一致始终用同一个词表达同一个概念“Save”/“Submit”/“Confirm”/“Apply”交替使用
动词简单使用一般现在时、一般过去时或一般将来时使用进行时、完成时或复杂时态
句子简短每句不超过 20 个单词使用包含多个从句的冗长句子
4c. 微文案质量

在浏览器中检查以下位置:

位置评估内容
按钮标签以行动为导向且具体(如“保存发票”,而不只是“提交”)
错误消息使用通俗易懂的语言,说明具体原因和补救操作
空状态提供帮助,引导用户进行下一步操作,而不只是显示“无数据”
确认消息明确说明后果(“删除此发票?此操作无法撤销”)
工具提示简洁地回答一个问题,而不是写成段落
占位符提供格式提示(如“例如:[email protected]”),而不是标签
加载文本尽可能提供有用信息(如“正在加载你的发票……”)
成功消息确认已完成的操作(如“已将发票发送给 John”)
4d. 国际化就绪情况
检查项符合不符合
硬编码字符串所有字符串都在 i18n 文件中字符串直接写在组件中
文化习语使用中性的比喻使用特定文化的俚语或幽默
文本扩展UI 能容纳长度增加 40% 的译文字符串变长后布局错乱
RTL 就绪情况使用逻辑属性(margin-inline-start)使用物理属性(margin-left)

查找违规项: 搜索 *.tsx 中的 >([\w\s]{3,})<,以找出可能遗漏国际化的硬编码可见文本字符串。


第 5 步:情感化设计与以人为本的评估

5a. 第一印象测试(5 秒测试)

打开着陆页/主页。在截图的前 5 秒内:

问题依据
你能看出这个产品的用途吗?[是/否——传达了什么信息]
你信任它吗?[视觉精致度、可信度信号、品牌存在感]
你知道首先该做什么吗?[清晰的 CTA、显而易见的起点]
它看起来像真正的产品,还是模板?[个性、匠心,还是通用的 Bootstrap 风格]

延伸阅读

评论

支持 Markdown