#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

Compare on GitHub

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.

Compare on GitHub

jury/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

add880bd6ec9 → add880bd6ec9

Compare on GitHub

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.

Compare on GitHub

View on GitHubAdd to my skills

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>/
1.2kGitHub stars
131stars in 7 days
2skills in this repository
33commits in 30 days

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

Oct 11, 2026Nov 6, 20261,161

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 tokens

Always available to the agent

SKILL.md

5,503 tokens

When the skill is activated

Reference documents

45,508 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. What makes a site win (internalize before anything else)
  2. Stack
  3. Workflow
  4. Hard rules
  5. Reference map

Scripts executed separately

  • scripts/audit.mjs
  • scripts/browser.mjs
  • scripts/font.mjs
  • scripts/og.mjs
  • scripts/photos.mjs
  • scripts/serve.mjs
  • scripts/shoot.mjs

Files

  • ../.claude-plugin/marketplace.jsonasset1,312 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • SKILL.mdcore22,566 bytes
  • references/anatomy.mddoc5,495 bytes
  • references/art-direction.mddoc8,396 bytes
  • references/astro.mddoc8,957 bytes
  • references/concepts.mddoc8,409 bytes
  • references/content.mddoc4,447 bytes
  • references/engine.mddoc32,066 bytes
  • references/layout.mddoc4,702 bytes
  • references/motion.mddoc25,276 bytes
  • references/nextjs.mddoc17,042 bytes
  • references/patterns.mddoc6,266 bytes
  • references/quality-bar.mddoc10,831 bytes
  • references/quality.mddoc7,766 bytes
  • references/ship.mddoc2,168 bytes
  • references/typography.mddoc7,591 bytes
  • references/webgl.mddoc19,247 bytes
  • scripts/audit.mjsruns14,674 bytes
  • scripts/browser.mjsruns2,375 bytes
  • scripts/font.mjsruns5,720 bytes
  • scripts/og.mjsruns1,180 bytes
  • scripts/photos.mjsruns3,518 bytes
  • scripts/serve.mjsruns2,585 bytes
  • scripts/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 in
View the complete source on GitHub

Skills 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

  1. #838 on Nov 1
  2. #839 on Nov 2
  3. #824 on Nov 3
  4. #806 on Nov 4
  5. #795 on Nov 5
  6. #790 since Nov 6
18 earlier periods
  1. #948 on Oct 11
  2. #961 on Oct 12
  3. #963 on Oct 13
  4. #982 on Oct 14
  5. #967 on Oct 15
  6. #972 on Oct 16
  7. #949 on Oct 17
  8. #933 on Oct 18
  9. #900 on Oct 19
  10. #851 on Oct 20
  11. #837 on Oct 21
  12. #797 on Oct 22
  13. #784 on Oct 23
  14. #740 on Oct 24
  15. #885 on Oct 25
  16. #850 on Oct 28
  17. #846 from Oct 29 to Oct 30
  18. #843 on Oct 31

Before you install

Network or broad shell

Automated 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:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • awwwards/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • jury/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • jury/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • jury/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • jury/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
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
Signal confidence: 98 facts

and 48 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest tests/nexttest/AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md awwwards/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md awwwards/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md awwwards/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard 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.

juliobsz/skills: #790 on hotskills, 1.2k stars

[![juliobsz/skills on hotskills](https://hotskills.dev/badge/juliobsz-skills.svg)](https://hotskills.dev/skill/juliobsz-skills/)