mcpField
J
jury

jury

github.com/juliobsz设计与 UI1.0k988 次安装2 天前更新
代码仓库

关于 jury

jury 是一项网站评审 Agent 技能,仅依据截图和浏览器测量结果评估网站,不查看源码或网站方介绍。它生成带证据的评分卡和排序后的修改建议,并注明评分只是估算,并非 Awwwards 评审结果。

主要功能

  1. 01基于截图进行视觉评审
  2. 02浏览器测量与无障碍审计
  3. 03采集桌面和手机端证据
  4. 04每项评分附有证据
  5. 05按优先级排列改进建议
  6. 06使用新评审者重新评分

适用场景

  1. 01评估已部署网站的访客体验
  2. 02评审本地生产构建
  3. 03比较多个网站 URL
  4. 04跟踪修复前后的评分变化

安装

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

$npx skills add https://github.com/juliobsz/skills --skill jury

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
calibration.md
quality-bar.md
scripts/
audit.mjs
browser.mjs
serve.mjs
shoot.mjs

详细介绍

/jury

像 Awwwards 评审团那样为网站打分:只依据访客看到的内容和浏览器测得的数据,绝不依据代码、设计说明或网站所有者的意图。提交一张评分卡,为每个分数提供证据,并列出按优先级排序的修复项。

与 Awwwards 无关联。 评审标准和权重由其公开提供 (awwwards.com/about-evaluation);评分仅为估算。每张评分卡都要注明这一点。

技能根目录: 包含此文件的目录($SKILL;在命令中替换为绝对路径)。脚本需要 Node 20+ 和 Playwright,此外无障碍检查还需要 axe-core。 references/quality-bar.md 包含系统、评分标准和评审员说明。 references/calibration.md 包含该评审员与真实评审团之间的测量差距。此文件仅供你为评分卡参考。绝不要交给评审员。

为什么要盲评

知道网站的用途后,人们打分时关注的会是意图,而不是屏幕上的实际效果。评审员拿到一个 URL,只有几分钟时间。因此,评审员只能看到截图和测量数据:没有源代码、没有 DESIGN.md、没有 README,也没有网站所有者的推介。如果用户解释了创意,先暂缓考虑,等评分完成后再进行比较(步骤 5)。

工作流程

1. 目标
  • 一个 URL: 为已部署的网站打分。
  • 本地项目,没有 URL: 构建并提供生产构建产物。绝不要为开发服务器打分:未压缩的 JS 和开发环境覆盖层会破坏 WPO 并增加控制台噪声。
    • Next.js:执行 npm run build,然后在后台运行 npx next start -p 4400。
    • 静态构建产物(Astro、Vite、Next output: 'export'): 在后台运行 node $SKILL/scripts/serve.mjs <dist|out> --port 4400。
    • 其他项目:使用项目自身的生产构建和启动命令。
  • 只有开发环境 URL(启用了热重载的 localhost):如果项目在此处,改为构建生产版本。如果项目不在此处,则为其打分,并说明 WPO 数据偏悲观。
  • 多个 URL(“我的 vs 他们的”):对每个 URL 分别执行步骤 3 到 5,每次都使用全新的评审员,然后将评分卡并排展示。
  • 需要登录或密码: 无法为其打分。请提供公开 URL 或本地构建版本。

证据保存在当前目录下的 .jury/<host>/ 中(<host> 可以是 example.com 或 127.0.0.1-4400)。下文使用绝对路径。

2. 工具

脚本会从其工作目录解析 Playwright 和 axe-core。

  • 如果当前项目已安装 Playwright(node -e "require.resolve('playwright')" 执行成功),就在该目录中运行脚本。
  • 否则,不要为了评审给用户的项目添加依赖。在项目外的缓存目录中安装一次,然后从该目录运行脚本:
    mkdir -p ~/.cache/jury && cd ~/.cache/jury && npm init -y > /dev/null && npm i -D playwright axe-core
    
  • 如果 shoot.mjs 报告未找到 Chromium,在该目录中运行一次 npx playwright install chromium。
3. 证据
node $SKILL/scripts/shoot.mjs <url> --crawl --nav --out <abs>/.jury/<host>/shots
node $SKILL/scripts/audit.mjs <url> > <abs>/.jury/<host>/audit.txt
  • shoot.mjs --crawl 会为每种页面类型抓取一个页面(首页、每个顶级页面、每个集合各一项),以及 404 页面。每个页面都会拍摄:1440 宽的桌面端、390 宽且限速为中端设备的手机端(4x CPU、慢速 4G)、减少动态效果模式、键盘焦点、指针目标的静止/悬停状态对,以及空闲动态效果和页面过渡帧。每个页面需要一到两分钟。
  • audit.mjs 发现 FAIL 时会以代码 1 退出。这是检查结果,并非运行故障。
  • 若要快速查看单个页面,可省略 --crawl,并在审计时传入 --max 10。请在评分卡上说明仅覆盖一个页面。
  • 打分前先确认这些证据真实有效。 打开 shots/home/d-01-hero.png 和 shots/summary.json。如果出现机器人验证、登录拦截、错误页面,或 report.json 显示有错误的空白画面,则没有可供评分的内容:停止并告知用户。Cookie 横幅不是停止评审的理由。访客也会看到它,因此它计入评分。
  • 抓取量较小:审计最多检查 40 个 HTML 页面,截图最多检查 8 种页面类型。对于用户不拥有的网站,不要提高这些上限。
4. 评分
  • 使用子 Agent: 将 references/quality-bar.md 中的评审简述(“Critic brief”)交给一个全新的子 Agent,并填入其中的三个路径(评分标准、.jury/<host>/shots/、.jury/<host>/audit.txt)。不要给它任何其他内容,也绝不要给它 calibration.md。它会读取每张截图,因此你自己的上下文可以保持精简。
  • 不使用子 Agent: 根据相同的评审简述,仅凭证据自行评分,并在评分卡上注明是自评。
  • **如果你在本次对话中构建或编辑了这个站点,**自评分就不是盲评。请使用子 Agent,或在评分卡上注明评分并非独立评定。
5. 评分卡

编写 .jury/<host>/scorecard.md,并在聊天中提供相同的评分卡:

# <site>: jury score
Estimate, not affiliated with Awwwards. <Independent critic | Self-score>, from <n> pages on <date>.

**The idea, as the critic read it:** one sentence
**Critic overall: 6.2** (0.4 Design + 0.3 Usability + 0.2 Creativity + 0.1 Content, on the critic's strict scale)
**Jury estimate: about 7.3** (critic + 1.1, measured on two recent Sites of the Day)
**Band, from the estimate:** below Honorable Mention (under 6.5) | Honorable Mention range (6.5 to 7.1) | Site of the Day range (7.2 and up)

| Criterion | Score | Evidence |
|---|---|---|
| Design (40%) | | file or report field, and what it shows |
| Usability (30%) | | |
| Creativity (20%) | | |
| Content (10%) | | |

| Developer | Score | Evidence |
|---|---|---|
| Semantics/SEO | | |
| Animations/Transitions | | |
| Accessibility | | |
| WPO | | |
| Responsive | | |
| Markup/Meta-data | | |

## Fixes, most score first
1. [Usability] m-03: what is wrong, and what to change
2. ...

## Measured
Mobile LCP and CLS, loader time, FPS, serious axe violations, overflow, `noHoverChange`,
`colorOnly`, idle motion, audit FAIL and WARN counts (from `summary.json` and the audit).

Not scored: anything stills can't show (how motion feels, sound).

从 references/calibration.md 中获取评审估分的偏移值(撰写本文时,上面的 1.1 就是该偏移值),并遵循其中的规则:评审自己的分数保持原样,开发者相关领域不提供评审估分。

然后,仅在聊天中:

  • 如果用户告诉过你这个站点意在表达什么,用一行说明:评审的理解是否一致?如果不一致,说明站点没有传达出这一点,这就是 Creativity 最先要修复的问题。
  • 提出两项最能提升总分的修复。
  • 提供一个选择:如果这个项目就在当前环境中,就在此项目中修复这些问题;或者在项目中运行 /awwwards 进行重新设计。
修复后的重新评分

再次执行步骤 3 至 5,使用一个新的评审,绝不能使用之前的评审,也绝不能让它看到之前的评分卡,否则它会受到旧分数的锚定。在编写新评分卡之前,将旧评分卡重命名为 scorecard-<n>.md,然后展示各类别的分数变化。

规则

  • 没有证据,就不给分。每个分数都要引用截图文件或报告字段。每个类别从 6 分起,并且只有证据才能让分数超过 6 分。每个类别都从 6 分开始,超过 6 分的每一分都必须有证据支撑。
  • 不要为分数辩护并擅自提高分数。只有指出评审误读的截图,才能对分数提出异议。
  • 根据屏幕上的实际效果评判站点。不要提出新概念;修复现有内容。
  • 具体但不刻薄:“m-03:标题在 390 px 宽度下换成五行;将字号降至 14vw”,不要说“排版需要改进”。有人用心制作了这个站点。

评论

支持 Markdown