Skip to content

skilldrop·docs·Reference

Frontend pack reference

Every skill in the Frontend pack — what it makes, when to use it, what it needs, its quality bar, and what it hands off to.

For frontend engineers and the people who review their pages: read a Lighthouse report for what actually slows the page, find what makes a JavaScript bundle heavy, and choose how each route is rendered from what it needs.

Installnpx skilldrop-cli install --pack frontend
Skills3 plus 5 from core
Loopsnone
How-toUse the Frontend pack

Skills

bundle-size-review

Find what makes a JavaScript bundle heavy and what can safely come out, from the bundler's stats file (webpack stats.json, an esbuild metafile, or the rollup-plugin-visualizer raw-data JSON that Vite builds use) read together with the repo around it (package.json, .browserslistrc, the lockfile, the bundler config and the source files that import the heavy modules). Gives each entry's first-load JavaScript in the exact bytes the stats record, kept apart from lazy chunks; finds whole-library imports, CommonJS packages that can't be tree-shaken, packages bundled twice and polyfills the browser targets don't need; names the import chain that pulls each module in before suggesting a removal; and, given before and after stats, says what grew, why, whether it lands in the first load and which per-entry budget would have caught it.

Tier standard · v0.2.3 · SKILL.md · skill page

Use it when the user says "why is our bundle so big", "what can we cut from the bundle", "review this stats.json", "why is lodash or moment in our bundle", "the bundle grew in this PR", or "set a bundle size budget".

Needs: Python 3 for its scripts (standard library only).

A good result:

Hands off to: web-performance-review when the user's real question is why the page is slow for users, with a Lighthouse or PageSpeed report in hand.

Not for:

rendering-strategy

Decide route by route how each page of a web app is rendered — static at build (SSG), static with revalidation (ISR, stale-while-revalidate), server-rendered per request (SSR, streaming), client-rendered (CSR, SPA), at the edge, or a mix with islands and server components — from how fresh each route's data must be, whether it is personalised, whether it must be indexed or shared, what it costs per request at the stated traffic and how much JavaScript it needs, with the cache keys, invalidation events and failure modes of each choice.

Tier standard · v0.1.0 · SKILL.md · skill page

Use it when the user asks "should this be SSR or static", "SSR vs SSG vs ISR", "how should each page be rendered", "do we need SSR for SEO", "which pages can we cache", or is choosing rendering modes in Next.js, Nuxt, Remix, React Router, SvelteKit or Astro.

Needs: Python 3 for its scripts (standard library only).

A good result:

Hands off to: nfr-spec when the routes have no stated freshness, latency or availability targets to decide against; adr-generator when the route table is agreed and the team wants it on record.

Not for:

web-performance-review

Read a Lighthouse report or PageSpeed Insights result, with field data when there is any (CrUX, PSI loadingExperience or RUM p75), and say what makes the page slow for real users and what to fix first, ranked by how much each fix moves LCP, INP and CLS at the 75th percentile. Names the LCP element and which LCP phase dominates, the elements that shift and why, the long tasks and third parties by main-thread time, and treats estimated savings as lab estimates that overlap.

Tier standard · v0.1.3 · SKILL.md · skill page

Use it when the user shares a Lighthouse JSON or PSI result and asks "why is this page slow", "what should we fix first", "we score 92 but Search Console says LCP is poor", "did our change fix INP", "review this Lighthouse report", or "how do we pass Core Web Vitals".

Needs: Python 3 for its scripts (standard library only).

A good result:

Hands off to: observability-plan when there is no field data, or the review needs RUM with per-element attribution to find after-load shifts or slow interactions.

Not for:

Included from core

Installed with this pack. Details: Core pack reference.

Edit this page on GitHub · View source