#790 by GitHub stars
juliobsz/skills
An agent skill that builds award-caliber websites from one line
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
awwwards/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
add880bd6ec9 → add880bd6ec9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → add880bd6ec9
No earlier version was observed for comparison.
jury/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
add880bd6ec9 → add880bd6ec9
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → add880bd6ec9
No earlier version was observed for comparison.
Verified commit add880bd6ec9f5592a1482846fc0dd282c9161bc
git clone --filter=blob:none --no-checkout https://github.com/juliobsz/skills.git .hotskills/juliobsz-skills && git -C .hotskills/juliobsz-skills checkout --detach add880bd6ec9f5592a1482846fc0dd282c9161bc
# Copy each selected skill directory from .hotskills/juliobsz-skills into .claude/skills/<skill-name>/git clone --filter=blob:none --no-checkout https://github.com/juliobsz/skills.git .hotskills/juliobsz-skills && git -C .hotskills/juliobsz-skills checkout --detach add880bd6ec9f5592a1482846fc0dd282c9161bc
# Copy each selected skill directory from .hotskills/juliobsz-skills into .agents/skills/<skill-name>/Heat
8.5- Star growth, last 7 daysAhead of 99% of tracked repositories
- Star growth, last 24 hoursAhead of 99% of tracked repositories
- Rank movement, last 7 daysAhead of 98% of tracked repositories
- Commits, last 30 daysAhead of 88% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
How it works
awwwards
When your agent uses it
Build award-caliber websites from a one-line prompt such as "make me a portfolio, my name is Ana". Uses the bar of sites that win Awwwards Site of the Day as a quality standard. Covers concept, art direction, typography, motion choreography, WebGL, page transitions, real content, SEO, accessibility and performance, then visual QA in a browser. Next.js by default, Astro for animation-heavy static showcases, or the stack the project already uses. Use for portfolios, studio or agency sites, personal sites, product or brand launches, landing pages that must impress, and any request for an award-winning, premium, immersive, creative or "insane" website. To only score or review a site without changing it, use /jury.
What it loads into context
Frontmatter
161 tokensAlways available to the agent
SKILL.md
5,503 tokensWhen the skill is activated
Reference documents
45,508 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What makes a site win (internalize before anything else)
- Stack
- Workflow
- Hard rules
- Reference map
Scripts executed separately
scripts/audit.mjsscripts/browser.mjsscripts/font.mjsscripts/og.mjsscripts/photos.mjsscripts/serve.mjsscripts/shoot.mjs
Files
../.claude-plugin/marketplace.jsonasset1,312 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesSKILL.mdcore22,566 bytesreferences/anatomy.mddoc5,495 bytesreferences/art-direction.mddoc8,396 bytesreferences/astro.mddoc8,957 bytesreferences/concepts.mddoc8,409 bytesreferences/content.mddoc4,447 bytesreferences/engine.mddoc32,066 bytesreferences/layout.mddoc4,702 bytesreferences/motion.mddoc25,276 bytesreferences/nextjs.mddoc17,042 bytesreferences/patterns.mddoc6,266 bytesreferences/quality-bar.mddoc10,831 bytesreferences/quality.mddoc7,766 bytesreferences/ship.mddoc2,168 bytesreferences/typography.mddoc7,591 bytesreferences/webgl.mddoc19,247 bytesscripts/audit.mjsruns14,674 bytesscripts/browser.mjsruns2,375 bytesscripts/font.mjsruns5,720 bytesscripts/og.mjsruns1,180 bytesscripts/photos.mjsruns3,518 bytesscripts/serve.mjsruns2,585 bytesscripts/shoot.mjsruns37,711 bytes
Read SKILL.md
# /awwwards
You are a creative director, designer and creative developer in one person. One prompt in, one
finished site out. Don't hand the user a questionnaire. Make decisions, write down your
assumptions, and ship.
**The bar.** Awwwards scoring is the yardstick here; it is not where the site is going. The
site is for its owner and their visitors. Award juries score Design 40%, Usability 30%,
Creativity 20% and Content 10%. A separate developer review covers semantics/SEO, animations,
accessibility, performance, responsive design and markup. Sites of the Day average about 7.2 to
7.6 out of 10, so aim for 8 or higher in every category of the QA score.
`references/quality-bar.md` has the system, the rubric and the critic brief.
**Skill root:** the directory containing this file (`$SKILL`; substitute the absolute path inView the complete source on GitHubjury
When your agent uses it
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.
What it loads into context
Frontmatter
158 tokensAlways available to the agent
SKILL.md
2,104 tokensWhen the skill is activated
Reference documents
3,815 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why blind
- Workflow
- Rules
Scripts executed separately
scripts/audit.mjsscripts/browser.mjsscripts/serve.mjsscripts/shoot.mjs
Files
SKILL.mdcore8,030 bytesSKILL.mdcore8,030 bytesSKILL.mdcore8,030 bytesSKILL.mdcore8,030 bytesSKILL.mdcore8,030 bytesreferences/calibration.mddoc3,622 bytesreferences/quality-bar.mddoc10,730 bytesscripts/audit.mjsruns14,587 bytesscripts/browser.mjsruns2,286 bytesscripts/serve.mjsruns2,498 bytesscripts/shoot.mjsruns37,624 bytes
Read SKILL.md
# /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.View the complete source on GitHubSkills included
- awwwards
- jury
Repository facts
- License
- MIT
- Created
- Oct 12, 2026
- Last pushed
- Oct 26, 2026
- Forks
- 52
- Open issues
- 0
- Project activity
- Active
Rank over the last 12 weeks
Now #790 · best #740
- #838 on Nov 1
- #839 on Nov 2
- #824 on Nov 3
- #806 on Nov 4
- #795 on Nov 5
- #790 since Nov 6
18 earlier periods
- #948 on Oct 11
- #961 on Oct 12
- #963 on Oct 13
- #982 on Oct 14
- #967 on Oct 15
- #972 on Oct 16
- #949 on Oct 17
- #933 on Oct 18
- #900 on Oct 19
- #851 on Oct 20
- #837 on Oct 21
- #797 on Oct 22
- #784 on Oct 23
- #740 on Oct 24
- #885 on Oct 25
- #850 on Oct 28
- #846 from Oct 29 to Oct 30
- #843 on Oct 31
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 4, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 12 notes
awwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedawwwards/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedjury/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedjury/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedjury/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedjury/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 102 network referencesin 15 files: .claude-plugin/marketplace.json:1 awwwards/scripts/audit.mjs:4 awwwards/scripts/font.mjs:26 and 12 more
- No hidden or obfuscated text
- No instruction overrides
- 11 executable scriptsin 11 files: awwwards/scripts/audit.mjs:1 awwwards/scripts/browser.mjs:1 awwwards/scripts/font.mjs:1 and 8 more
- No access to secrets
- No requests to vote in Hot
Show all 113 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://json.schemastore.org/claude-code-marketplace.json", - Network accessline 2
"$schema": "https://json.schemastore.org/claude-code-marketplace.json", - Network accessline 5
"owner": { "name": "juliobsz", "url": "https://github.com/juliobsz" - Network accessline 6
"name": "juliobsz", "url": "https://github.com/juliobsz" }, - Network accessline 7
"url": "https://github.com/juliobsz" - Network accessline 12
"source": "./awwwards", "description": "Build award-caliber websites from a one-line prompt: concept, art direction, motion, WebGL and a real-browser QA loop.", "author": { "name": "juliobsz", "url": "https://github.com/juliobsz - Network accessline 13
"description": "Build award-caliber websites from a one-line prompt: concept, art direction, motion, WebGL and a real-browser QA loop.", "author": { "name": "juliobsz", "url": "https://github.com/juliobsz" }, "homepage": "https: - Network accessline 14
"author": { "name": "juliobsz", "url": "https://github.com/juliobsz" }, - Network accessline 15
"homepage": "https://github.com/juliobsz/skills", - Network accessline 16
"repository": "https://github.com/juliobsz/skills", - Network accessline 23
"source": "./jury", "description": "Score any website the way an Awwwards jury would: real-browser evidence, a blind critic, and a ranked fix list.", "author": { "name": "juliobsz", "url": "https://github.com/juliobsz" }, - Network accessline 24
"description": "Score any website the way an Awwwards jury would: real-browser evidence, a blind critic, and a ranked fix list.", "author": { "name": "juliobsz", "url": "https://github.com/juliobsz" }, "homepage": "https://githu - Network accessline 25
"author": { "name": "juliobsz", "url": "https://github.com/juliobsz" }, - Network accessline 26
"homepage": "https://github.com/juliobsz/skills", - Network accessline 27
"repository": "https://github.com/juliobsz/skills",
awwwards/SKILL.md
- Network accessline 175
# Next.js: npm run build && npx next start -p 4400 (run in background) # Astro: npm run build && node $SKILL/scripts/serve.mjs dist --port 4400 node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --crawl --nav # screenshots, v - Network accessline 176
# Astro: npm run build && node $SKILL/scripts/serve.mjs dist --port 4400 node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --crawl --nav # screenshots, vitals, axe, keyboard, hover node $SKILL/scripts/audit.mjs http://127.0.0.1:4400 - Network accessline 177
node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --crawl --nav # screenshots, vitals, axe, keyboard, hover - Network accessline 178
node $SKILL/scripts/audit.mjs http://127.0.0.1:4400/ > .shots/audit.txt # SEO/meta/a11y/weight/placeholders/tells
awwwards/references/anatomy.md
- Network accessline 3
[`anatomy`](https://github.com/wheresryan22/anatomy) is a separate, open-source skill by
awwwards/references/astro.md
- Network accessline 78
const ogImage = new URL(image, Astro.site ?? site.url).href; const jsonLd = { '@context': 'https://schema.org', - Network accessline 79
const jsonLd = { '@context': 'https://schema.org', '@type': 'Person', - Network accessline 80
'@context': 'https://schema.org', - Network accessline 178
// Set `site` to the production URL before deploying: canonical, OG and sitemap depend on it. export default defineConfig({ site: 'https://example.com', - Network accessline 179
export default defineConfig({ site: 'https://example.com', integrations: [sitemap()], - Network accessline 180
site: 'https://example.com', - Network accessline 223
node $SKILL/scripts/serve.mjs dist --port 4400 # background node $SKILL/scripts/audit.mjs dist # or the URL node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --nav - Network accessline 225
node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --nav
awwwards/references/content.md
- Network accessline 53
name: 'Ana Ruiz', role: 'Independent designer & creative developer', url: 'https://anaruiz.studio', // production URL: canonical, OG, sitemap - Network accessline 54
role: 'Independent designer & creative developer', url: 'https://anaruiz.studio', // production URL: canonical, OG, sitemap description: '120 to 160 characters, a human sentence about what they make and for whom.', - Network accessline 55
url: 'https://anaruiz.studio', // production URL: canonical, OG, sitemap - Network accessline 56
description: '120 to 160 characters, a human sentence about what they make and for whom.', email: 'hello@anaruiz.studio', socials: [{ label: 'GitHub', href: 'https://github.com/…' }], - Network accessline 57
email: 'hello@anaruiz.studio', socials: [{ label: 'GitHub', href: 'https://github.com/…' }], glPalette: ['#101010', '#6b6b6b', '#f2f2f2'] as [string, string, string], // keep in sync with tokens - Network accessline 58
socials: [{ label: 'GitHub', href: 'https://github.com/…' }],
awwwards/references/nextjs.md
- Network accessline 120
const jsonLd = { '@context': 'https://schema.org', - Network accessline 121
'@context': 'https://schema.org', - Network accessline 360
npm run build && npx next start -p 4400 # background; production server node $SKILL/scripts/audit.mjs http://127.0.0.1:4400/ - Network accessline 361
node $SKILL/scripts/audit.mjs http://127.0.0.1:4400/ - Network accessline 362
node $SKILL/scripts/shoot.mjs http://127.0.0.1:4400/ --nav
awwwards/references/ship.md
- Network accessline 7
`public/robots.txt` in Astro). 2. **OG image:** run the production server, then `node $SKILL/scripts/og.mjs http://127.0.0.1:4400/ --out public/og.png`, then rebuild. - Network accessline 8
2. **OG image:** run the production server, then `node $SKILL/scripts/og.mjs http://127.0.0.1:4400/ --out public/og.png`, then rebuild. Per-page images are optional: `--out public/og/<slug>.png`, referenced from that page's - Network accessline 9
`node $SKILL/scripts/og.mjs http://127.0.0.1:4400/ --out public/og.png`, then rebuild.
awwwards/scripts/audit.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 4
// leftover placeholders and AI-copy tells. Crawls same-origin links from the start page. // node audit.mjs <url | build-dir> [--max 40] // url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ - Network accessline 5
// node audit.mjs <url | build-dir> [--max 40] // url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ // build-dir: a static output folder (dist/, out/); served internally - Network accessline 6
// url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ - Network accessline 20
if (!fs.existsSync(target)) { console.error(`No build at ${path.resolve(target)} and not a URL. Build first, or pass the server URL.`); process.exit(1); } server = await serve(target, 0); base = `http://127.0.0.1:${server.address().port - Network accessline 21
server = await serve(target, 0); base = `http://127.0.0.1:${server.address().port}/`; } - Network accessline 22
base = `http://127.0.0.1:${server.address().port}/`; - Network accessline 53
const get = async (u) => { try { const r = await fetch(u, { redirect: 'follow' }); - Network accessline 54
try { const r = await fetch(u, { redirect: 'follow' }); return { status: r.status, type: r.headers.get('content-type') || '', body: Buffer.from(await r.arrayBuffer()), url: r.url }; - Network accessline 55
const r = await fetch(u, { redirect: 'follow' }); - Network accessline 239
// Let Node exit on its own: process.exit() right after fetch() aborts Node on Windows (libuv
awwwards/scripts/browser.mjs
- Executable scriptline 1
Executable file
awwwards/scripts/font.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 26
if (provider === 'fontshare') { const ws = weights.split(',').flatMap((w) => (flags.has('--italic') ? [w, `${+w + 1}`] : [w])).join(','); cssUrl = `https://api.fontshare.com/v2/css?f[]=${family}@${ws}&display=swap`; - Network accessline 27
const ws = weights.split(',').flatMap((w) => (flags.has('--italic') ? [w, `${+w + 1}`] : [w])).join(','); cssUrl = `https://api.fontshare.com/v2/css?f[]=${family}@${ws}&display=swap`; } else if (provider === 'google') { - Network accessline 28
cssUrl = `https://api.fontshare.com/v2/css?f[]=${family}@${ws}&display=swap`; - Network accessline 32
const axis = weights.includes('@') ? weights : flags.has('--italic') ? `ital,wght@${range.split(';').flatMap((w) => [`0,${w}`, `1,${w}`]).join(';')}` : `wght@${range}`; cssUrl = `https://fonts.googleapis.com/css2?family=${encodeURICom - Network accessline 33
: flags.has('--italic') ? `ital,wght@${range.split(';').flatMap((w) => [`0,${w}`, `1,${w}`]).join(';')}` : `wght@${range}`; cssUrl = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(family).replace(/%20/g, '+')}:${axis}&disp - Network accessline 34
cssUrl = `https://fonts.googleapis.com/css2?family=${encodeURIComponent(family).replace(/%20/g, '+')}:${axis}&display=swap`; - Network accessline 37
const res = await fetch(cssUrl, { headers: { 'user-agent': UA } }); - Network accessline 61
seen.add(key); const file = `${name.toLowerCase().replace(/\s+/g, '-')}-${weight.replace(/\s+/g, '_')}-${style}${subset}.woff2`; const buf = Buffer.from(await (await fetch(src.startsWith('//') ? `https:${src}` : src, { headers: { 'user- - Network accessline 62
const file = `${name.toLowerCase().replace(/\s+/g, '-')}-${weight.replace(/\s+/g, '_')}-${style}${subset}.woff2`; const buf = Buffer.from(await (await fetch(src.startsWith('//') ? `https:${src}` : src, { headers: { 'user-agent': UA } })). - Network accessline 63
const buf = Buffer.from(await (await fetch(src.startsWith('//') ? `https:${src}` : src, { headers: { 'user-agent': UA } })).arrayBuffer());
awwwards/scripts/og.mjs
- Executable scriptline 1
#!/usr/bin/env node
awwwards/scripts/photos.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 16
let all = []; for (let p = 1; p <= 11; p++) { const r = await fetch(`https://picsum.photos/v2/list?page=${p}&limit=100`); - Network accessline 17
for (let p = 1; p <= 11; p++) { const r = await fetch(`https://picsum.photos/v2/list?page=${p}&limit=100`); if (!r.ok) break; - Network accessline 18
const r = await fetch(`https://picsum.photos/v2/list?page=${p}&limit=100`); - Network accessline 37
const chunk = all.slice(i * per, (i + 1) * per); await page.setContent(`<body style="margin:0;background:#222;display:grid;grid-template-columns:repeat(16,1fr);gap:3px;font:bold 13px sans-serif;color:#ff0">${chunk .map((a) => `<di - Network accessline 38
await page.setContent(`<body style="margin:0;background:#222;display:grid;grid-template-columns:repeat(16,1fr);gap:3px;font:bold 13px sans-serif;color:#ff0">${chunk .map((a) => `<div style="position:relative"><img src="https://picsum. - Network accessline 39
.map((a) => `<div style="position:relative"><img src="https://picsum.photos/id/${a.id}/200/134" style="width:100%;display:block"><span style="position:absolute;left:2px;top:1px;background:#000;padding:0 3px">${a.id}</span></div>`) - Network accessline 51
const credits = []; for (const id of ids) { const info = await (await fetch(`https://picsum.photos/id/${id}/info`)).json(); - Network accessline 52
for (const id of ids) { const info = await (await fetch(`https://picsum.photos/id/${id}/info`)).json(); const img = await fetch(`https://picsum.photos/id/${id}/${w}/${h}`); - Network accessline 53
const info = await (await fetch(`https://picsum.photos/id/${id}/info`)).json(); - Network accessline 54
const img = await fetch(`https://picsum.photos/id/${id}/${w}/${h}`);
awwwards/scripts/serve.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 45
if (!fs.existsSync(dir)) { console.error(`No folder ${path.resolve(dir)}. Build first.`); process.exit(1); } const server = await serve(dir, pi > -1 ? +args[pi + 1] : 4400); console.log(`serving ${path.resolve(dir)} at http://127.0.0.1: - Network accessline 46
const server = await serve(dir, pi > -1 ? +args[pi + 1] : 4400); console.log(`serving ${path.resolve(dir)} at http://127.0.0.1:${server.address().port}/`); } - Network accessline 47
console.log(`serving ${path.resolve(dir)} at http://127.0.0.1:${server.address().port}/`);
awwwards/scripts/shoot.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 36
const AXE_CDN = { url: 'https://cdn.jsdelivr.net/npm/axe-core@4.14.0/axe.min.js', sha384: 'lFUXB8tI4BaTE1bqxH9eeAXON2NH1qsdAhs7S5L++nUNP5QOy+hwr0C3TYEJUEl0' }; - Network accessline 38
try { return fs.readFileSync(createRequire(path.join(process.cwd(), 'noop.js')).resolve('axe-core/axe.min.js'), 'utf8'); } catch {} try { const r = await fetch(AXE_CDN.url); - Network accessline 39
try { const r = await fetch(AXE_CDN.url); if (!r.ok) return null; - Network accessline 40
const r = await fetch(AXE_CDN.url); - Network accessline 57
const u = queue.shift(); let html = ''; try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; } - Network accessline 58
let html = ''; try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; } for (const m of html.matchAll(/<a\b[^>]*\shref=["']([^"'#]+) - Network accessline 59
try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; }
jury/scripts/audit.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 3
// leftover placeholders and AI-copy tells. Crawls same-origin links from the start page. // node audit.mjs <url | build-dir> [--max 40] // url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ - Network accessline 4
// node audit.mjs <url | build-dir> [--max 40] // url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ // build-dir: a static output folder (dist/, out/); served internally - Network accessline 5
// url: a running production server, e.g. `next start` → http://127.0.0.1:4400/ - Network accessline 19
if (!fs.existsSync(target)) { console.error(`No build at ${path.resolve(target)} and not a URL. Build first, or pass the server URL.`); process.exit(1); } server = await serve(target, 0); base = `http://127.0.0.1:${server.address().port - Network accessline 20
server = await serve(target, 0); base = `http://127.0.0.1:${server.address().port}/`; } - Network accessline 21
base = `http://127.0.0.1:${server.address().port}/`; - Network accessline 52
const get = async (u) => { try { const r = await fetch(u, { redirect: 'follow' }); - Network accessline 53
try { const r = await fetch(u, { redirect: 'follow' }); return { status: r.status, type: r.headers.get('content-type') || '', body: Buffer.from(await r.arrayBuffer()), url: r.url }; - Network accessline 54
const r = await fetch(u, { redirect: 'follow' }); - Network accessline 238
// Let Node exit on its own: process.exit() right after fetch() aborts Node on Windows (libuv
jury/scripts/browser.mjs
- Executable scriptline 1
Executable file
jury/scripts/serve.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 44
if (!fs.existsSync(dir)) { console.error(`No folder ${path.resolve(dir)}. Build first.`); process.exit(1); } const server = await serve(dir, pi > -1 ? +args[pi + 1] : 4400); console.log(`serving ${path.resolve(dir)} at http://127.0.0.1: - Network accessline 45
const server = await serve(dir, pi > -1 ? +args[pi + 1] : 4400); console.log(`serving ${path.resolve(dir)} at http://127.0.0.1:${server.address().port}/`); } - Network accessline 46
console.log(`serving ${path.resolve(dir)} at http://127.0.0.1:${server.address().port}/`);
jury/scripts/shoot.mjs
- Executable scriptline 1
#!/usr/bin/env node - Network accessline 35
const AXE_CDN = { url: 'https://cdn.jsdelivr.net/npm/axe-core@4.14.0/axe.min.js', sha384: 'lFUXB8tI4BaTE1bqxH9eeAXON2NH1qsdAhs7S5L++nUNP5QOy+hwr0C3TYEJUEl0' }; - Network accessline 37
try { return fs.readFileSync(createRequire(path.join(process.cwd(), 'noop.js')).resolve('axe-core/axe.min.js'), 'utf8'); } catch {} try { const r = await fetch(AXE_CDN.url); - Network accessline 38
try { const r = await fetch(AXE_CDN.url); if (!r.ok) return null; - Network accessline 39
const r = await fetch(AXE_CDN.url); - Network accessline 56
const u = queue.shift(); let html = ''; try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; } - Network accessline 57
let html = ''; try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; } for (const m of html.matchAll(/<a\b[^>]*\shref=["']([^"'#]+) - Network accessline 58
try { const r = await fetch(u); if (!r.ok || !(r.headers.get('content-type') || '').includes('html')) continue; html = await r.text(); } catch { continue; }
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 5 facts
- Contacts api.fontshare.com, which SKILL.md, the README and the plugin manifest do not mentionawwwards/scripts/font.mjs:28High confidence
- Contacts fonts.googleapis.com, which SKILL.md, the README and the plugin manifest do not mentionawwwards/scripts/font.mjs:34High confidence
- Contacts picsum.photos, which SKILL.md, the README and the plugin manifest do not mentionawwwards/scripts/photos.mjs:18High confidence
- Contacts cdn.jsdelivr.net, which SKILL.md, the README and the plugin manifest do not mentionawwwards/scripts/shoot.mjs:36High confidence
- Contacts cdn.jsdelivr.net, which SKILL.md, the README and the plugin manifest do not mentionjury/scripts/shoot.mjs:35High confidence
Signal confidence: 98 facts
- Network access in code of the SKILL.mdawwwards/SKILL.md:175High confidence
- Network access in code of the SKILL.mdawwwards/SKILL.md:176High confidence
- Network access in code of the SKILL.mdawwwards/SKILL.md:177High confidence
- Network access in code of the SKILL.mdawwwards/SKILL.md:178High confidence
- Network access in prose of documentationawwwards/references/anatomy.md:3Low confidence
- Network access in code of documentationawwwards/references/astro.md:78Low confidence
- Network access in code of documentationawwwards/references/astro.md:79Low confidence
- Network access in code of documentationawwwards/references/astro.md:80Low confidence
- Network access in code of documentationawwwards/references/astro.md:178Low confidence
- Network access in code of documentationawwwards/references/astro.md:179Low confidence
- Network access in code of documentationawwwards/references/astro.md:180Low confidence
- Network access in code of documentationawwwards/references/astro.md:223Low confidence
- Network access in code of documentationawwwards/references/astro.md:225Low confidence
- Network access in code of documentationawwwards/references/content.md:53Low confidence
- Network access in code of documentationawwwards/references/content.md:54Low confidence
- Network access in code of documentationawwwards/references/content.md:55Low confidence
- Network access in code of documentationawwwards/references/content.md:56Low confidence
- Network access in code of documentationawwwards/references/content.md:57Low confidence
- Network access in code of documentationawwwards/references/content.md:58Low confidence
- Network access in code of documentationawwwards/references/nextjs.md:120Low confidence
- Network access in code of documentationawwwards/references/nextjs.md:121Low confidence
- Network access in code of documentationawwwards/references/nextjs.md:360Low confidence
- Network access in code of documentationawwwards/references/nextjs.md:361Low confidence
- Network access in code of documentationawwwards/references/nextjs.md:362Low confidence
- Network access in prose of documentationawwwards/references/ship.md:7Low confidence
- Network access in prose of documentationawwwards/references/ship.md:8Low confidence
- Network access in prose of documentationawwwards/references/ship.md:9Low confidence
- Executable script in code of a file that runsawwwards/scripts/audit.mjs:1High confidence
- Network access in a comment of a file that runsawwwards/scripts/audit.mjs:4Low confidence
- Network access in a comment of a file that runsawwwards/scripts/audit.mjs:5Low confidence
- Network access in a comment of a file that runsawwwards/scripts/audit.mjs:6Low confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:20High confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:21High confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:22High confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:53High confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:54High confidence
- Network access in code of a file that runsawwwards/scripts/audit.mjs:55High confidence
- Network access in a comment of a file that runsawwwards/scripts/audit.mjs:239Low confidence
- Executable script in a comment of a file that runsawwwards/scripts/browser.mjs:1Low confidence
- Executable script in code of a file that runsawwwards/scripts/font.mjs:1High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:26High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:27High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:28High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:32High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:33High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:34High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:37High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:61High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:62High confidence
- Network access in code of a file that runsawwwards/scripts/font.mjs:63High confidence
and 48 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Native | Manifest tests/nexttest/AGENTS.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md awwwards/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md awwwards/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md awwwards/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md awwwards/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/juliobsz-skills/)