jury
Skill1k starsChanged 28 days agoMITView on GitHub
Score any website the way an Awwwards jury would, from evidence alone. Screenshots every page type on desktop, a throttled phone and reduced motion, measures LCP, CLS, FPS, axe, keyboard focus and hover feedback, audits SEO and metadata, then a fresh critic that never sees the code scores Design, Usability, Creativity, Content and the six developer areas, with a ranked fix list. Use when someone asks to review, critique, score, rate or roast a website, portfolio or landing page, asks whether a site is good enough for Awwwards or Site of the Day, or wants design QA of a live URL or a local build. Not for building or redesigning a site; use /awwwards for that.
- Installs packages
5 other projects use a version of this.
Trending
More talk lately.thin dataabout the whole repository
Most recently taken up by
- hamzzaqureshi/gravidexword for word, first seen Nov 8, 2026
- sgtlaugh/skillstheir own version, first seen Nov 1, 2026
- edgarcosta/skillztheir own version, first seen Nov 1, 2026
- svyatov/supermatttheir own version, first seen Sep 23, 2026
- TeamSPWK/novatheir own version, first seen Apr 30, 2026
Who's talking about juliobsz/skills
- @adityamitra.bsky.social“Found this and had to share https://github.com/juliobsz/skills #frontend #ui #ux #design #website #webdev”Bluesky · Oct 13, 2026 · 9 likes
- yigitkrbtc/takir-takir-website“Site için web tasarım kuralları (juliobsz/skills uyarlaması)”GitHub · Nov 2, 2026
- gaia-research/gaia-skill-tree“curate(wheresryan22): curate wheresryan22/anatomy as interactive-mechanism-illustration (closes #2162)”GitHub · Oct 27, 2026
- gaia-research/gaia-skill-tree“[intake] interactive mechanism illustration — wheresryan22/anatomy”GitHub · Oct 27, 2026
- sudosubin/agents.nix“agent-skills.github.juliobsz.skills: 0-unstable-2026-10-20 → 0-unstable-2026-10-26”GitHub · Oct 26, 2026
The biggest 5 of 11 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 11
Talked about on GitHub and Bluesky (11 times).
On GitHub · 10
- Nov 2, 2026Site için web tasarım kuralları (juliobsz/skills uyarlaması) — yigitkrbtc/takir-takir-website0 reactions · 1 comment
- Oct 27, 2026curate(wheresryan22): curate wheresryan22/anatomy as interactive-mechanism-illustration (closes #2162) — gaia-research/gaia-skill-tree0 reactions · 1 comment
- Oct 27, 2026[intake] interactive mechanism illustration — wheresryan22/anatomy — gaia-research/gaia-skill-tree0 reactions · 1 comment
- Oct 26, 2026agent-skills.github.juliobsz.skills: 0-unstable-2026-10-20 → 0-unstable-2026-10-26 — sudosubin/agents.nix0 reactions
- Oct 20, 2026agent-skills.github.juliobsz.skills: 0-unstable-2026-10-18 → 0-unstable-2026-10-20 — sudosubin/agents.nix0 reactions
5 more on GitHub
- Oct 18, 2026agent-skills.github.juliobsz.skills: 0-unstable-2026-10-16 → 0-unstable-2026-10-18 — sudosubin/agents.nix0 reactions
- Oct 16, 2026agent-skills.github.juliobsz.skills: 0-unstable-2026-10-13 → 0-unstable-2026-10-16 — sudosubin/agents.nix0 reactions
- Oct 14, 2026agent-skills.github.juliobsz.skills: init at 0-unstable-2026-10-13 — sudosubin/agents.nix0 reactions
- Oct 13, 2026hq-pack-awwwards 1.0.0: port juliobsz/skills (MIT) — do not merge without owner go — indigoai-us/hq-packages0 reactions
- Oct 12, 2026[Candidate] juliobsz/skills/awwwards - awwwards — ProSkillsMD/proskills0 reactions · 1 comment
On Bluesky · 1
- Oct 13, 2026Found this and had to share https://github.com/juliobsz/skills #frontend #ui #ux #design #website #webdev — @adityamitra.bsky.social9 likes and reposts · 1 reply
Other versions5 projects use a version of this.
Word for word · 1
- hamzzaqureshi/gravidex★ 1100% same
Edited · 0
None found.
Wrote their own version · 4
- svyatov/supermatt★ 20same name
- edgarcosta/skillz★ 2same name
- sgtlaugh/skills★ 2same name
- TeamSPWK/nova★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- awwwardsSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 4 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 52
If the current project already has Playwright (node -e "require.resolve('playwright')" succeeds), run the scripts from there.
- Very specific: line 59
If shoot.mjs reports no Chromium, run npx playwright install chromium once in that folder.
- Distinctive: line 80
Don't raise those limits on a site the user doesn't own.
- Very specific: line 95
Write .jury/<host>/scorecard.md and give the same card in chat:
- Distinctive: line 138
If the user told you what the site is meant to say, one line: does the critic's reading match?
- Very specific: line 145
Run steps 3 to 5 again with a new critic, never the earlier one, and never show it the earlier card: it would anchor on the old numbers.
- Distinctive: line 151
No evidence, no points. Every score cites a screenshot file or a report field.
- Distinctive: line 153
Don't argue a score up. Dispute one only by pointing at a screenshot the critic misread.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/jury
Score a website the way the Awwwards jury would: from what a visitor sees and what the browser measures, never from the code, the design notes or what the owner meant. Hand back a score card with evidence for every number and a ranked list of fixes.
Not affiliated with Awwwards. The criteria and weights are theirs and public (awwwards.com/about-evaluation); the scores are an estimate. Say so on every card.
Skill root: the directory containing this file ($SKILL; substitute the absolute path in
commands). The scripts need Node 20+ and Playwright, plus axe-core for the accessibility pass.
references/quality-bar.md has the system, the rubric and the critic brief.
references/calibration.md has the measured gap between this critic and real juries. It is for
you, for the score card. Never give it to the critic.
Why blind
Anyone who knows what a site is meant to do scores the intent instead of the screen. A juror
gets a URL and a few minutes. So the critic gets only screenshots and measurements: no source,
no DESIGN.md, no README, no pitch from the owner. If the user explains the idea, hold it until
the score is in, then compare (step 5).
Workflow
1. Target
- A URL: score what is deployed.
- A local project, no URL: build it and serve the production output. Never score a dev
server: unminified JS and dev overlays wreck WPO and add console noise.
- Next.js:
npm run build, thennpx next start -p 4400in the background. - Static output (Astro, Vite, Next
output: 'export'):node $SKILL/scripts/serve.mjs <dist|out> --port 4400in the background. - Anything else: its own production build and start commands.
- Next.js:
- A dev URL only (localhost with hot reload): build production instead if the project is here. If it isn't, score it and say the WPO numbers are pessimistic.
- Several URLs ("mine vs theirs"): run steps 3 to 5 for each, each with its own fresh critic, then put the cards side by side.
- Behind a login or password: it can't be scored. Ask for a public URL or a local build.
Evidence goes in .jury/<host>/ in the current directory (<host> such as example.com or
127.0.0.1-4400). Use absolute paths for it below.
2. Tools
The scripts resolve Playwright and axe-core from their working directory.
- If the current project already has Playwright (
node -e "require.resolve('playwright')"succeeds), run the scripts from there. - Otherwise don't add dependencies to someone's project for a review. Install once into a cache
folder outside it and run the scripts from that folder:
mkdir -p ~/.cache/jury && cd ~/.cache/jury && npm init -y > /dev/null && npm i -D playwright axe-core - If
shoot.mjsreports no Chromium, runnpx playwright install chromiumonce in that folder.
3. Evidence
node $SKILL/scripts/shoot.mjs <url> --crawl --nav --out <abs>/.jury/<host>/shots
node $SKILL/scripts/audit.mjs <url> > <abs>/.jury/<host>/audit.txtshoot.mjs --crawltakes one page of every type (home, each top-level page, one item per collection) plus the 404. For each: desktop at 1440, a phone at 390 throttled to a mid-range device (4x CPU, slow 4G), reduced motion, keyboard focus, rest/hover pairs for pointer targets, idle motion, and page-transition frames. Allow a minute or two per page.audit.mjsexits with code 1 when it finds a FAIL. That is a finding, not a broken run.- For a quick look at one page, drop
--crawland pass--max 10to the audit. Say on the card that it covers one page. - Check the evidence is real before scoring. Open
shots/home/d-01-hero.pngandshots/summary.json. A bot challenge, a login wall, an error page, or a blank frame with errors inreport.jsonmeans there is nothing to score: stop and tell the user. A cookie banner is not a reason to stop. Visitors see it too, so it counts. - Crawling is light: at most 40 HTML pages for the audit and 8 page types for screenshots. Don't raise those limits on a site the user doesn't own.
4. Score
- With subagents: give a fresh one the critic brief from
references/quality-bar.md("Critic brief"), with its three paths filled in (the rubric,.jury/<host>/shots/,.jury/<host>/audit.txt). Give it nothing else, and nevercalibration.md. It reads every screenshot, so your own context stays small. - Without subagents: score it yourself under the same brief, from the evidence alone, and mark the card as a self-score.
- If you built or edited this site in this conversation, a self-score isn't blind. Use a subagent, or say on the card that the score is not independent.
5. Score card
Write .jury/<host>/scorecard.md and give the same card in chat:
# <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).Take the offset for the jury estimate from references/calibration.md (the 1.1 above is the
offset when this was written) and follow its rules: the critic's own numbers stay as scored, and
the developer areas get no jury estimate.
Then, in chat only:
- If the user told you what the site is meant to say, one line: does the critic's reading match? If not, the site isn't saying it, and that is the first Creativity fix.
- The two fixes that would move the overall most.
- An offer: fix the list in this project if it's here, or run
/awwwardsin it for a redesign.
Re-scoring after fixes
Run steps 3 to 5 again with a new critic, never the earlier one, and never show it the
earlier card: it would anchor on the old numbers. Before writing the new card, rename the old
one to scorecard-<n>.md, then show the change per category.
Rules
- No evidence, no points. Every score cites a screenshot file or a report field. Start each category at 6 and make the evidence earn every point above it.
- Don't argue a score up. Dispute one only by pointing at a screenshot the critic misread.
- Judge the site on screen. Don't propose a new concept; fix what's there.
- Specific, not cruel: "m-03: the title wraps to five lines at 390 px; drop it to 14vw", never "the typography needs work". Someone made this.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

