Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO)…

UnlicenseAuto-check: notesFrontend & Design

Install Optimize Load

skills CLI
$ npx skills add textura-agency/next16-claude-starter --skill optimize-load -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install textura-agency/next16-claude-starter optimize-load --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/textura-agency/next16-claude-starter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/optimize-load .claude/skills/optimize-load && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
optimize-load
GitHub stars
133
Token cost
~4.6k tokens
SKILL.md length
2,525 words
Files
4 (incl. references)
Skills in repo
16
Repo updated
First seen
Licence
Unlicense

At a glance

Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO)…

  • Works in 7 steps: Rules of measurement → Run it → Attribute before fixing → …
  • The user says check Lighthouse
  • SKILL.md covers The loop, 0. Rules of measurement, 1. Run it and 2. Attribute before fixing, plus 5 more sections
  • Calls yarn, node and git

What it does

Optimize Load is an agent skill from textura-agency/next16-claude-starter. Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO), fix what the audit blames, re-measure to prove it. Covers LCP (loaders, curtains, the consent banner, fonts, media), CLS, TBT/hydration, bundle cost, contrast and mid-fade accessibility, 404s from linked-but-missing routes, metadata, the brand kit and crawlability. Use when the user says "check Lighthouse", "get it in…

Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/fixes.md`, `references/robot-path.md` and `references/runner.md`).

It sits in Frontend & Design, covering Web performance, Accessibility and Performance optimization. The repository describes itself as: AI-first Next.js 16 starter for animation-heavy sites, wired with an Obsidian vault & Claude Code hooks. The licence is Unlicense.

When your agent uses it

  • The user says check Lighthouse
  • Get it in the green
  • Improve the score
  • Core Web Vitals

Example prompts

  • “check Lighthouse”
  • “get it in the green”
  • “improve the score”
  • “/optimize-load”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Edit, Write

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Rules of measurement
  2. Run it
  3. Attribute before fixing
  4. Audit artifacts — and which of them are real
  5. Fix, in weight order
  6. Report honestly
  7. Close the loop

What it can do on your machine

Read from SKILL.md and the folder at commit 6c6edf9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob
    • Edit
    • Write

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • yarn
    • node
    • git
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use yarn, git and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Optimize Load loads about 4.6k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 200 tokens; SKILL.md has 2,525 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~200
When it runs · the whole SKILL.md, loaded when a task matches
~4.6k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~11k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob, Edit, Write

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from textura-agency/next16-claude-starter at commit 6c6edf9, republished under its Unlicense licence (© textura-agency). 2,525 words, ~4,582 tokens.

Download SKILL.mdSave it as .claude/skills/optimize-load/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
optimize-load
description
Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO), fix what the audit blames, re-measure to prove it. Covers LCP (loaders, curtains, the consent banner, fonts, media), CLS, TBT/hydration, bundle cost, contrast and mid-fade accessibility, 404s from linked-but-missing routes, metadata, the brand kit and crawlability. Use when the user says "check Lighthouse", "get it in the green", "improve the score", "Core Web Vitals", "PageSpeed", "test on mobile and desktop", "SEO and accessibility audit", "make it load fast", or before handing a site to a client. For scroll jank and micro-freezes *after* load, use `optimize-performance` instead.
allowed-tools
Bash, Read, Grep, Glob, Edit, Write

Get the page into the green

Lighthouse, two form factors (plus tablet when it matters), four categories, two audiences (people and the robot form), then fix and prove it. Rewritten from optimisation passes on ~50 production sites built from this starter; each lever says whether it is a rule (held on ≥ 3 sites) or observed (1–2). Before fixing, read obsidian/knowledge/fix-catalog.md and obsidian/knowledge/pitfalls.md.

The bar (reached on every one of those sites): Performance ≥ 90 on mobile and desktop; Accessibility, Best Practices and SEO = 100 on both, for people and for the robot form. 100 on the last three is reachable without changing the design — the classic "axe caught a fade mid-way" flake is fixable (§3). Don't chase Performance from 96 to 100; do chase an A11y 96.

Scope. This skill owns the load: navigation to settled. Scroll jank after load is optimize-performance — Lighthouse never scrolls. A WebGL scene: run optimize-3d-scene first. Real-phone behaviour Lighthouse can't see (iOS toolbar, 120 Hz, menus): mobile-device-qa.

The loop

Build → audit (people + robot, mobile + desktop) → attribute → fix one thing → re-audit. Never report a score you did not re-measure.

0. Rules of measurement

Ignoring these produces confident wrong answers. Each one cost real time.

  1. Audit the build, never next dev. yarn build && yarn start. Kill the old server by port first (next start runs as next-server), and start the new one only if the build succeeded — a failed build serves the previous .next, and the A/B compares the old build with itself.
  2. Median of ≥ 3 runs; 5 before calling a regression. On one unchanged build LCP swung 2.7 → 4.6 s and CLS 0 → 0.18. Lantern can simulate the same preloader-gated LCP at 0.85 s or 4.6 s run to run (one live site scored 89 / 90 / 68 / 90 / 68 in one sitting) — compare metrics → observedLargestContentfulPaint too.
  3. People and robot are different pages. The starter's proxy serves bots — and Lighthouse's default UA, and PageSpeed Insights — the robot form (references/robot-path.md). A people run needs a plain Chrome UA. Audit both; the robot form is what Google and PSI score.
  4. Localhost is a floor, not the record. One site's mobile LCP was 4.8 s locally and 31 s on its real host (11 MB of raw PNGs Lantern only charged on a real network). The other way round too: on asset-heavy pages localhost over HTTP/1.1 bills ~4–6 extra LCP points. Judge local A/Bs by deltas and TBT; take the record on the deployed URL (--url https://…).
  5. A shared or busy machine moves TBT 2×. Interleave A/B arms (old, new, old, new) so both see the same load; note sysctl -n vm.loadavg. Build the baseline from a git worktree of the base branch, never by copying .next/.
  6. Change one thing at a time, and test the hypothesis first. The opening loader was the obvious suspect for a 4 s LCP; removing it entirely moved TBT 20 ms and made two profiles worse.

1. Run it

sh
yarn qa:setup                                    # once — deps go to a cache outside the project
node tools/qa/lighthouse.mjs --url http://localhost:3000/ --runs 3   # people, mobile + desktop
node tools/qa/lighthouse.mjs --url http://localhost:3000/ --as-bot   # the robot form (Google, PageSpeed)
node tools/qa/lighthouse.mjs --url <candidate> --ab <reference>     # interleaved A/B on a busy machine
node tools/qa/axe-sweep.mjs  --url http://localhost:3000/            # contrast/target-size through the whole entrance

(tools/qa/README.md lists every flag — --devices, --runs, --as-bot, --ab, --min-perf/--min-other gates.) references/runner.md has the raw Lighthouse Node API recipe and the CLS PerformanceObserver probe for digging; the tool is the record.

Report the grid — four categories × mobile/desktop × people/robot:

mobile peoplemobile robotdesktop peopledesktop robot
Performance
Accessibility
Best Practices
SEO

2. Attribute before fixing

Performance weights: TBT 30, LCP 25, CLS 25, FCP 10, SI 10. The "Opportunities" list is weight 0.

Read the LCP phase breakdown — it names the fix:

dominant phasewhat it means
TTFBserver or hosting
Load Delaythe image is discovered late — preload it, or it is behind JS
Load Timethe file is too big, or competing for bandwidth
Render Delaydownloaded but not painted — the main thread is busy, or something covers it (a loader, a curtain, a hidden start state). Not a network problem.

Which element is it, and when did it paint? Check the LCP element's timing, not just its identity — a blurred word mid-entrance can out-measure the whole resting headline (§4, blur halo).

CLS: Lighthouse does not tell you what moved. Use the PerformanceObserver probe in references/runner.md. When the deployed CLS is higher than local, re-run locally against the production build with a longer trace — a plain run can end before a late shift (observed).

TBT — name the code before touching it: node tools/qa/profile.mjs --url … profiles a cold load at 4× CPU with source maps and prints the busiest runs by original file. Lighthouse's long-tasks times are simulated — a 711 ms task "at 3.4 s" was ~180 ms of hydration at 0.5 s observed — so lining a task up with the page's own timeline (a preloader finishing, a reveal) picks the wrong suspect. Two fixes aimed by timing moved nothing or doubled TBT (<Suspense> splits 393 → 834 ms) until the profile named react-spring set-up in hydration.

A resource asked for by raw path bypasses next/image. If network-requests shows .png/.jpg at /assets/… rather than /_next/image?…, find who requested it — a preloader's new Image(), a CSS url(), a <link rel=preload> — and warm the getImageProps candidate instead (references/fixes.md). That one was the 31 s hosted LCP above.

3. Audit artifacts — and which of them are real

axe samples once, and on an animated page it samples mid-animation. Text caught at opacity: 0.4 reads as 1.1:1, so A11y flips 96 ↔ 100 run to run. Darker text can't fix it. But it is fixable without changing the design (rule, 4+ sites — one hero went from 96 in 5/8 runs → 100 in 8/8):

  • Run tools/qa/axe-sweep.mjs first: it samples every ~120 ms through the whole entrance and names every element that ever fails, and when. It also finds real at-rest failures Lighthouse never sees — text over a canvas (it can't resolve a canvas background), an eyebrow at 4.42:1. Its last-sample failures are real defects even when Lighthouse says 100.
  • First-screen copy: reveal with transform / clip-path / a soft-edged mask-image sweep while opacity stays 1 — it paints like a fade. Remove the mask at rest. First screen only: below the fold Lighthouse never scrolls, and masks over glass (backdrop-filter) repaint every frame (250–490 ms frames, observed twice).
  • Or start the fade at a contrast-passing opacity, or serve the copy at rest under an opaque curtain (§4).
  • Panels that reveal in steps: keep them hidden (visibility/inert) until revealed, so axe doesn't read through a parent fade.

The robot form at rest shows below-fold colours people do see after their reveals — when a robot audit finds contrast failures people-runs never reached, they are real. Fix the colours (§5).

Custom reveal clocks bypass the robot switch. A reveal driven by a project's own rAF/timeline (not the engine) kept animating on the robot form; production caught a CTA mid-fade (1.2:1) while localhost finished the fade before the snapshot. Gate such clocks on useMotionOff() / useRobot().

A CLS of 0 can mean "the trace ended before the shift" — verify with the probe before believing a regression or a win.

4. Fix, in weight order

Full code in references/fixes.md; the robot form in references/robot-path.md.

LCP
  • The LCP waits on a loader / curtain / entrance (the most common shape on animated sites). Serve the LCP copy at rest under the opaque curtain in the server HTML, switch it to its start state at hydration (still covered) after a reported paint (a paint PerformanceObserver, or rAF → setTimeout — two bare rAFs lost the race 1 run in 3), then play the same entrance with the same config. Nothing visible changes; the LCP is at first paint. Rule (3+: mobile 64 → 91, 52 → 73, 59 → 85). Then check:
    • Blur halo. An entrance that starts each word at blur(20px) measured a blurred word (62k px²) larger than the whole resting headline (50k px²), so the LCP moved back to the entrance. Keep the start blur small enough (≤ 14–16 px observed) or blur per line (observed, 2 sites).
    • A client-only scene draws the LCP heading → its loading placeholder renders the same heading at rest in the server HTML (observed: ~79 → 96).
    • LCP behind a timed curtain with heavy work under it: read observedLargestContentfulPaint (2.85 s observed vs 9.3 s simulated — Lantern replays the scene build at 4×). Shrinking bytes moved nothing; the lever is when the heavy work runs.
  • LCP = the cookie banner. The starter now server-renders it at rest and hides it before paint for returning visitors (an inline script marks <html data-consent>; CSS hides the banner under that mark and on the robot form). Keep it that way: a dynamic({ ssr: false }) banner paints after hydration and Lantern bills it with every request that finished before it. Rule (10+ sites: mobile 53 → 74 alone, 73 → 99, 87 → 92, 91 → 100). If a design holds the banner behind an intro, server-rendering changes consent UX — ask. The banner's privacy link must not import site.ts (it drags zod in — below).
  • priority on the hero image and nothing else. A raw <img> LCP gets fetchpriority="high" and its siblings loading="lazy".
  • Fonts are the usual bandwidth competitor. Local .ttf/.otf → Latin WOFF2 subsets (observed: 352 → 74 KB, mobile 83 → 89; WOFF2 alone moved nothing — the subset did); instance away variable-font axes the design pins (267 → 51 KB). A font CDN stylesheet (Fontshare, Google @import) is render-blocking from another origin: self-host with next/font/local (observed: FCP ~2 → 0.8 s). Prefer next/font/local over next/font/google anyway — the latter makes every build depend on Google's network (a deploy failed on it). Don't list a face as WOFF2 and WOFF.
  • experimental.inlineCss: true in next.config.ts, and model / Draco / scene-data fetches started at first paint, not as <head> preloads — Lantern bills every download that finished before a late LCP to it. Rule (3 sites: 87 → 90; LCP 3–5 → 2.5–3.0 s).
  • Media by role. A hero video encoded for its job — a decent desktop file, a smaller phone file via <source media>, silent audio dropped (masters shipped at 2892×2160, 21–25 Mbps). Below-fold <video> is preload="none" until its section hydrates (observed: a run-to-run LCP flip 2.3 ↔ 3.4 s gone).
  • A preloader counter that rewrites text every frame costs Speed Index (a late layout weighs heavily): draw it to a canvas (observed: SI 5.2 → 4.4 s).
Show full SKILL.md (858 more words)Show less
TBT / hydration
  • Below-the-fold text engines mount near the viewport — RobotText lazy (src/components/common/robot-text.tsx): plain text until within 1.5 viewports, then the engine. Never the first screen. Rule (mobile TBT 2,488 → 390 ms alone; 81 → 93, 88 → 98).
  • Hydrate below-fold blocks later — on approach (HydrateNear, observed 68 → 83) or one per idle moment after load when blocks are heavy (rule: 79 → 86, 84 → 87; on approach janked one site's scroll with 75–100 ms hydration frames). Only once each block is under the long-task limit — splitting 275–395 ms blocks made TBT worse. Put deferred blocks in memoised components, or a re-rendering parent replaces their server HTML with the empty fallback (a FAQ and footer vanished once).
  • Per-letter headings: plain spans until they first play (observed: 52 → 60). One clock per text effect, not a spring per character — each character's state computed from one time-based spring with the original delays; latch it (no restart on re-entry). Rule (hand-over task 403 → 103 ms; hydration ~240 → ~38 ms; TBT 360 → 63 ms).
  • Hover springs only where a mouse can hover — render at rest until (hover: hover) and (pointer: fine) after load, then swap in the real Hover (robot-hover.tsx does the robot half). Rule (~60 springs: TBT ~570 → ~400 ms).
  • Split the curtain-lift's entrances into their own tasks, each switched on ≈ 120 ms before its own delay so timing is unchanged. Rule (88 → 93) — then fix the mid-fade contrast it exposes (§3).
  • three.js out of the first load: import() from an effect after first paint, not next/dynamic alone (observed: LCP 2.8 → 1.8 s). Heavy geometry in a Worker; the whole scene in an OffscreenCanvas worker when set-up is one long task — optimize-3d-scene §3, §15.
  • zod out of the client. Client code imports brand constants from a plain module, never site.ts → env.ts. Check: grep -l ZodError .next/static/chunks/*.js must print nothing (observed: 72 → 78).
  • prefetch={false} on links that never navigate in-app.
  • Looping springs under skipAnimation (robot form, reduced motion) restart in the same tick forever — the page hangs (PAGE_HUNG) or burns ~300 ms per load. loop: motionOff ? false : … with useMotionOff() known on the first render. tools/qa/check-motion.mjs --url … catches it.
CLS

Reserve space for anything that grows — images, webfonts, counting numbers (fixed width / tabular-nums). CLS sums distance, not frames: a stiffer spring doesn't help. A preloader is the usual culprit: a bar growing by height → scaleY() from its edge; a counter riding on bottom → fixed bottom + translateY() (observed: CLS 0.489 → 0).

Best Practices and SEO to 100
  • Linked-but-missing routes — every href must resolve. A cookie-banner link to /privacy-policy that doesn't exist cost BP 3–4 points on six sites; build the page, don't drop the link. Nav items for pages never built point to # (or the section anchor), never a 404.
  • object-cover on percentage-cropped images (BP "image aspect ratio").
  • The brand kit and metadata — the starter's placeholders ("New Project", @newproject, generic icons, a 900×600 share card) shipped to most sites it seeded. seo-audit §2 has the checklist; tools/qa/brand-kit.mjs renders the favicon set and a 1200×630 share image from the running hero.
  • Canonical / og:url follow the serving origin — siteConfig.url from NEXT_PUBLIC_SITE_URL → the host's production domain → localhost, plus origin-sync.ts after hydration. Fetch the deployed og:image and curl it: a localhost or 404 image is a broken share preview.
  • The empty app/loading.tsx stays deleted. It wrapped the streamed page in <div hidden> for non-JS readers — crawlers saw no <h1>. It is a crawler fix, not a score lever: keep it deleted even when Lighthouse doesn't move.
Contrast

Arithmetic, not taste. On this starter's surfaces the floor for 4.5:1 is black at 0.55 alpha on light surfaces and white at 0.46 on black — for pure black; a softer ink raises it (#111 on white needs 0.6). Large text (≥ 24 px, or 19 px bold) needs 3:1. Add a new Tier-1 alpha and repoint the semantic token — don't raise the shared raw value (borders share it at 3:1). Decorative text that must stay dim → CSS generated content (content:), not text — but switch to it after the cover lifts, not at first render (doubled hydration once). target-size: 24 px centres, measured on rendered boxes (trimmed leading lies; a negative-margin pad doesn't pass); look for an overflowing row first. Let a control's visible text name it rather than replacing it with aria-label.

5. Report honestly

The full grid before and after, which cells meet the bar and which don't. Then:

  • what you changed and which measurement blamed it;
  • what you did not fix and why — anything capped by a design decision gets its measured cost, for the client to decide. Never rewrite the design, copy, layout or brand to win points; never remove a 3D scene on mobile without the client's sign-off;
  • what you reverted (and its numbers) — reverted attempts are findings;
  • audit artifacts you left, and why.

6. Close the loop

yarn lint · npx tsc --noEmit -p . · yarn build · .claude/scripts/verify.sh (zero FAILs) · qa-verify if any UI changed (a contrast fix changes the look) · mobile-device-qa if anything a phone shows changed. Then the vault: the grid in obsidian/meta/changelog.md; an ADR for anything that sets a rule or accepts a cost; a measured fix → obsidian/knowledge/fix-catalog.md; what misled you → obsidian/knowledge/pitfalls.md.

[[optimize-load]] · [[optimize-performance]] · [[seo-aeo]] · [[ship]] · [[qa-verification]] · [[mobile-device-qa]] · [[testing-pipeline]]

© textura-agency, Unlicense. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (references) in .claude/skills/optimize-load of textura-agency/next16-claude-starter.

  • SKILL.md
  • references/fixes.md
  • references/robot-path.md
  • references/runner.md

Open the folder on GitHubat commit 6c6edf9

Compare with similar skills

Optimize Load next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Optimize Load compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Optimize Load this skilltextura-agency/next16-claude-starter133—~4.6kAutomated safety check: NotesUnlicense
Web Quality Auditaddyosmani/web-quality-skills2.9k—~2.6kAutomated safety check: PassMIT
Web Quality Auditmidudev/100cosas.dev1143 repos~1.7kAutomated safety check: PassMIT
Building Tablesancoleman/ai-design-components526—~1.8kAutomated safety check: PassMIT
React Native Best Practicescallstackincubator/agent-skills1.7k4 repos~3.1kAutomated safety check: PassMIT
Accessibilityericrisco/rsc-harness174—~3.4kAutomated safety check: PassMIT

Similar skills

  • Web Quality Audit

    addyosmani/web-quality-skills

    Run an evidence-led web quality audit covering performance, accessibility, SEO, best practices, and agentic browsing.

    2.9k GitHub stars~2.6k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Web Quality Audit

    midudev/100cosas.dev

    Comprehensive web quality audit covering performance, accessibility, SEO, and best practices.

    114 GitHub starsUsed in 3 repos~1.7k tokens
    Frontend & DesignAuto-check passed
  • Building Tables

    ancoleman/ai-design-components

    Builds tables and data grids for displaying tabular information, from simple HTML tables to complex enterprise data grids.

    526 GitHub stars~1.8k tokensUpdated 10 mo ago
    Frontend & DesignAuto-check passed
  • React Native Best Practices

    callstackincubator/agent-skills

    Official

    Provides React Native performance optimization guidelines for FPS, TTI, bundle size, memory leaks, re-renders, and animations.

    1.7k GitHub starsUsed in 4 repos~3.1k tokens
    MobileAuto-check passed
  • Accessibility

    ericrisco/rsc-harness

    A skill your agent uses when making a web UI conform to WCAG 2.2 Level AA — axe-core or Lighthouse a11y violations, keyboard operability, focus management, ARIA roles/names/live regions, contrast…

    174 GitHub stars~3.4k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Web Perf

    elithrar/dotfiles

    Diagnose page-load and interaction performance using browser traces, network evidence, and source code.

    202 GitHub stars~721 tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from textura-agency/next16-claude-starter

All 16 skills in this repo
  • Mobile Device QA

    textura-agency/next16-claude-starter

    Make a site behave on real phones — the defects no Lighthouse run or headless scroll test sees, learned from site owners reviewing production sites on an iPhone.

    133 GitHub stars~5k tokensUpdated 2 days ago
    Auto-check: notes
  • Optimize Performance

    textura-agency/next16-claude-starter

    Make a page in this starter actually smooth — build it, scroll it in real Chrome on PC and on an emulated phone, fix what the measurement blames, re-measure to prove it.

    133 GitHub stars~3.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Payload Admin

    textura-agency/next16-claude-starter

    Make a Payload admin feel like part of the site and explain itself — the skin re-tinted from the site's own tokens (calm, light, no added motion), the site's wordmark and favicon, a dashboard…

    133 GitHub stars~1.5k tokensUpdated 2 days ago
    Auto-check passed
  • Payload Cms

    textura-agency/next16-claude-starter

    Put a Payload CMS admin on a site built from this starter — every visible string and content photo editable, derived from the site's own content objects with the code's copy as the fallback, a…

    133 GitHub stars~3.7k tokensUpdated 2 days ago
    Auto-check: notes
  • Aeo Visibility

    textura-agency/next16-claude-starter

    Answer Engine Optimisation — make the site citable by ChatGPT, Claude, Perplexity, Gemini and AI Overviews.

    133 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check: notes
  • Figma To Section

    textura-agency/next16-claude-starter

    Turn a Figma frame or node into components in this starter — the MCP call order, recording node IDs so later passes can re-fetch, downloading and verifying assets, mapping design values onto the…

    133 GitHub stars~1.4k tokensUpdated 2 days ago
    Auto-check: notes

Questions about Optimize Load

What does Optimize Load do?

Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO)…. Optimize Load is an agent skill from textura-agency/next16-claude-starter. Get a page into Lighthouse's green zone on desktop and mobile, for people AND for the robot form crawlers get — build it, audit all four categories (Performance, Accessibility, Best Practices, SEO), fix what the audit blames, re-measure to prove it.

When should I use Optimize Load?

Optimize Load fits situations like: the user says check Lighthouse; get it in the green; improve the score; core Web Vitals.

How do I install Optimize Load in Claude Code?

Run `npx skills add textura-agency/next16-claude-starter --skill optimize-load -a claude-code`. Or copy the skill folder (.claude/skills/optimize-load in textura-agency/next16-claude-starter) into .claude/skills/optimize-load in your project. Claude Code loads it when a task matches its description.

How do I install Optimize Load in Codex?

Run `npx skills add textura-agency/next16-claude-starter --skill optimize-load -a codex`. Or copy the skill folder (.claude/skills/optimize-load in textura-agency/next16-claude-starter) into .agents/skills/optimize-load in your project. Codex loads it when a task matches its description.

Can I use Optimize Load in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add textura-agency/next16-claude-starter --skill optimize-load -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/optimize-load, .gemini/skills/optimize-load, .github/skills/optimize-load and .opencode/skills/optimize-load in your project.

What does Optimize Load need to run?

Going by SKILL.md and its folder, Optimize Load needs the command-line tools its instructions call (yarn, node, git and npx). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit, Write.

Does Optimize Load access the network?

SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Optimize Load safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Optimize Load use?

Optimize Load is published under the Unlicense licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Optimize Load use?

About 4.6k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.5k tokens, read only when the agent opens those files.

What are the alternatives to Optimize Load?

Skills that share tags, products or a category with Optimize Load: Web Quality Audit (addyosmani/web-quality-skills, 2.9k stars), Web Quality Audit (midudev/100cosas.dev, 114 stars), Building Tables (ancoleman/ai-design-components, 526 stars) and React Native Best Practices (callstackincubator/agent-skills, 1.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Optimize Load?

textura-agency (a GitHub organization) maintains it in textura-agency/next16-claude-starter, which has 133 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 7, 2026.

Source: textura-agency/next16-claude-starter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.