Agent skill

Tsh Optimizing Frontend

by TheSoftwareHouse in TheSoftwareHouse/copilot-collections

Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.

MITAuto-check passedFrontend & Design

Install Tsh Optimizing Frontend

skills CLI
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a claude-code

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

GitHub CLI
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --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/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .claude/skills/tsh-optimizing-frontend && 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
tsh-optimizing-frontend
GitHub stars
284
Token cost
~4.1k tokens
SKILL.md length
1,723 words
Files
2 (incl. references)
Skills in repo
31
Repo updated
First seen
Licence
MIT

At a glance

Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.

  • Works in 2 steps: URL to audit — local dev server,… → Expected thresholds (optional) — custom…
  • Optimizing component rendering
  • SKILL.md covers Optimization Process, Memoization Decision Guide, Bundle Size Red Flags and Performance Checklist, plus 3 more sections
  • Calls npx

What it does

Tsh Optimizing Frontend is an agent skill from TheSoftwareHouse/copilot-collections. Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management. Use when optimizing component rendering, reducing bundle size, debugging performance issues, implementing lazy loading, or reviewing code for performance regressions.

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/react-patterns.md`).

It sits in Frontend & Design, covering Web performance. The repository describes itself as: Opinionated AI-enabled workflows for product engineering. The licence is MIT.

When your agent uses it

  • Optimizing component rendering
  • Reducing bundle size
  • Debugging performance issues
  • Implementing lazy loading

Example prompts

  • “/tsh-optimizing-frontend”

Requirements

  • Node.js

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. URL to audit — local dev server, staging/preview deployment, or production URL.
  2. Expected thresholds (optional) — custom performance score or Core Web Vitals targets. If the user has no preference, use the defaults below.

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use 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

Tsh Optimizing Frontend loads about 4.1k tokens when it runs, and up to ~5.3k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 1,723 words of instructions outside code blocks.

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

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 passed

The automated check found no risky patterns in SKILL.md.

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 TheSoftwareHouse/copilot-collections at commit 2fbe51e, republished under its MIT licence (© TheSoftwareHouse). 1,723 words, ~4,111 tokens.

Download SKILL.mdSave it as .claude/skills/tsh-optimizing-frontend/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
tsh-optimizing-frontend
description
Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management. Use when optimizing component rendering, reducing bundle size, debugging performance issues, implementing lazy loading, or reviewing code for performance regressions.
user-invocable
false

Optimizing Frontend

Provides optimization strategies for frontend rendering performance, bundle size reduction, and memory management to maintain fast, responsive user interfaces.

<principles>
<measure-before-optimizing>
Never optimize without data. Profile first using browser devtools, bundle analysis tools, or runtime performance APIs. Premature optimization adds complexity without proven benefit. Identify the actual bottleneck before writing optimization code.
</measure-before-optimizing>
<less-is-more>
The most effective optimization is shipping less code. Lazy-load routes and heavy components. Tree-shake unused exports. Avoid pulling in large libraries for small tasks. Every kilobyte costs users time.
</less-is-more>
<memoization-is-not-free>
Component memoization, computed value caching, and callback stabilization have overhead — memory for cached values and comparison cost on every render. Only memoize when: the computation is expensive, the component re-renders frequently with the same props, or reference stability matters for downstream consumers. Over-memoizing is a code smell.
</memoization-is-not-free>
</principles>

Optimization Process

Use the checklist below and track your progress:

Progress:
- [ ] Step 1: Measure current performance
- [ ] Step 2: Optimize bundle size
- [ ] Step 3: Optimize rendering
- [ ] Step 4: Optimize assets and DOM
- [ ] Step 5: Manage memory
- [ ] Step 6: Verify improvement

Step 1: Measure current performance

Before optimizing anything, establish baselines:

  • Run bundle analysis (bundler-specific analyzer tool) to identify large chunks and their contents.
  • Use browser devtools Performance tab to record and identify slow renders, long tasks, and layout thrashing.
  • Check Core Web Vitals:
    • LCP (Largest Contentful Paint) — how fast the main content appears.
    • CLS (Cumulative Layout Shift) — how much the layout moves unexpectedly.
    • INP (Interaction to Next Paint) — how fast the UI responds to user input.
  • Use performance.mark() / performance.measure() for custom timing of specific operations.
  • Document baseline metrics — without baselines, you cannot prove improvement.

Step 2: Optimize bundle size

Reduce what ships to the user:

  • Code split at route level: Lazy-load routes so users download only the code they need. Use the framework's lazy-loading mechanism (dynamic imports) with loading boundaries at each route entry point.
  • Split heavy components: Large modals, charts, rich text editors, and data visualization components should load on demand when the user triggers them, not at initial page load.
  • Named imports only: Always use import { Button } from 'lib' — never import * as Lib from 'lib'. Wildcard imports defeat tree shaking and pull in the entire module.
  • Barrel file awareness: Barrel files (index.ts) that re-export everything from a folder can prevent tree shaking. For large libraries, prefer direct file imports (e.g., import { Button } from 'lib/components/Button') over barrel imports.
  • Audit dependencies: Run dependency audit tools (depcheck or equivalent) regularly. Remove unused packages. Before adding a new dependency, check its bundle impact — a small utility should not cost 50KB.
  • Analyze duplicate dependencies: Multiple versions of the same library inflate the bundle. Check the bundle analyzer output for duplicates and resolve version conflicts.
  • Consider rendering strategy: Before optimizing client-side rendering, evaluate whether the page needs to render on the client at all. Server-side rendering (SSR) improves LCP by delivering ready HTML — the browser doesn't wait for JS to build the page. Static generation (SSG/prerendering) is even faster when content doesn't change per-request. If the framework supports streaming SSR, use it to send HTML chunks progressively rather than waiting for the full render. Reserve client-side rendering for highly interactive, user-specific UI that cannot be pre-rendered.

Step 3: Optimize rendering

Reduce unnecessary re-render work:

  • Component memoization: Mark pure presentational components for memoization when they receive complex props and their parent re-renders frequently. Use a custom comparison function when props include objects that are structurally equal but referentially different. See the framework reference for the specific memoization API.
  • Callback memoization: Stabilize event handler references when passed as props to memoized children. Skip stabilization for handlers that are not passed down — the overhead provides no benefit. See the framework reference for the specific API.
  • Computed value memoization: Cache expensive computations — sorting or filtering large lists (1000+ items), complex data transformations, derived state calculations. Skip caching for trivial computations like simple arithmetic or string concatenation. See the framework reference for the specific API.
  • Avoid object/array literals in the render path: Inline object/array expressions in the render path create a new reference every render cycle, defeating memoization on child components. Lift static values to module scope or cache dynamic ones.
  • State granularity: Keep state as close to where it is consumed as possible. Broad state at the top of the tree causes cascading re-renders. If your state management solution supports selective subscriptions or slices, use them to minimize re-render scope.
  • Key stability: Use stable, unique keys for list items (database IDs, UUIDs). Never use array indices as keys — index keys cause unnecessary unmount/remount when items are reordered, added, or removed.
  • Virtualize long lists: For lists with hundreds or thousands of items, use a virtualization technique (windowing) to render only the visible items. This reduces DOM node count and re-render cost dramatically.

Step 4: Optimize assets and DOM

  • Images: Use modern formats (WebP, AVIF) with fallbacks. Always provide explicit width and height attributes to prevent layout shift. Lazy-load images below the fold using native loading="lazy" or an intersection observer.
  • CSS and animations: Avoid layout thrashing — batch DOM reads before DOM writes. Use transform and opacity for animations (GPU-composited) instead of top, left, width, or height (trigger layout recalculation). Use will-change sparingly and only on elements that are about to animate — leaving it on permanently increases memory usage.
  • DOM depth: Keep the DOM tree shallow. Avoid unnecessary wrapper elements that exist only for styling — use CSS alternatives. Deep DOM trees increase style calculation, layout, and paint costs.
  • Font loading: Use font-display: swap or font-display: optional to prevent invisible text during font load. Preload critical fonts. Subset fonts to include only the characters actually used.
  • Third-party scripts: Load third-party scripts (analytics, tracking, chat widgets) with async or defer to prevent blocking the main thread. async downloads and executes as soon as ready (non-blocking, out of order). defer executes after HTML parsing in document order. For critical third-party origins, add <link rel="preconnect"> to reduce connection setup time. Lazy-load non-essential third-party resources (video embeds, social widgets) until the user scrolls to them or interacts. Audit third-party script count — set a resource budget (e.g., max 10 third-party requests) and enforce it.

Step 5: Manage memory

Prevent leaks that degrade performance over time:

  • Event listeners: Every addEventListener must have a corresponding removeEventListener in the component's cleanup phase. Forgetting cleanup causes listeners to accumulate on long-lived pages.
  • Timers: Every setTimeout needs clearTimeout and every setInterval needs clearInterval in cleanup. Leaked intervals continue executing after the component is gone.
  • In-flight requests: Use AbortController to cancel pending network requests when the component unmounts. Responses arriving after unmount can cause state updates on unmounted components.
  • Refs for non-rendering values: Use mutable refs (non-reactive references) for values that should not trigger re-renders — previous values, callback refs, accumulated counters, DOM element references.
  • Subscriptions: WebSocket connections, event bus subscriptions, and observable subscriptions must all be unsubscribed in cleanup. The pattern is always: subscribe in the effect body, unsubscribe in the cleanup return.
Show full SKILL.md (607 more words)Show less

Step 6: Verify improvement

After applying optimizations, close the loop:

  • Bundle size: Run the project's build command and bundle analyzer. Compare chunk sizes against the baselines from Step 1. Flag any chunk still over 200KB gzipped.

  • Lighthouse audit: Run a Lighthouse audit against the application. Use vscode/askQuestions to gather two inputs from the user:

    1. URL to audit — local dev server, staging/preview deployment, or production URL.
    2. Expected thresholds (optional) — custom performance score or Core Web Vitals targets. If the user has no preference, use the defaults below.

    Default thresholds (based on web.dev/Google recommendations):

    MetricGoodNeeds ImprovementPoor
    Lighthouse Performance Score≥ 9050–89< 50
    LCP (Largest Contentful Paint)≤ 2.5s2.5s–4.0s> 4.0s
    INP (Interaction to Next Paint)≤ 200ms200ms–500ms> 500ms
    CLS (Cumulative Layout Shift)≤ 0.10.1–0.25> 0.25

    Execution steps:

    1. If the URL is local, verify the server is running (or start it using the project's dev/preview command from package.json).
    2. Run npx lighthouse <URL> --output=json --output-path=./lighthouse-report.json --chrome-flags="--headless".
    3. Parse the JSON report — extract performance score, LCP, INP, CLS values.
    4. Compare each metric against the user's custom thresholds or the defaults above. Flag any metric in the "Needs Improvement" or "Poor" range.
    5. If a local server was started in step 1, stop it after the audit completes.
  • Quantify the delta: Every claimed improvement needs a number — e.g., "main chunk reduced from 280KB to 140KB gzipped", "LCP improved from 3.2s to 1.8s". If no measurable improvement, the optimization was either targeting the wrong bottleneck or introduced regression elsewhere — revert and re-profile.

  • Document results: Record post-optimization metrics alongside the baselines from Step 1 for future reference.

Memoization Decision Guide

SituationMemoize?Why
Expensive computation (sort/filter 1000+ items)Yes (cache computation)Saves CPU on re-renders
Handler passed to memoized childYes (stabilize reference)Preserves referential equality
Simple arithmetic or string concatNoMemo overhead exceeds computation cost
Component with static or rarely-changing propsMaybe (component memo)Profile first — often unnecessary
Inline object passed as propYes (lift or cache)New identity each render causes child re-render
Top-level handler (not passed down)NoNothing benefits from a stable reference

Bundle Size Red Flags

Red FlagAction
Single chunk over 200KB (gzipped)Code split — lazy-load routes or heavy features
Heavy date library (e.g., moment.js)Replace with lightweight alternative (date-fns, dayjs)
Wildcard import (import * as)Switch to named imports for tree shaking
Barrel re-exports pulling unused codeImport directly from source file
Unused dependencies in package.jsonRun audit tool and remove unused
CSS framework loaded fully (not purged)Enable CSS purging in build configuration
Polyfills for widely-supported featuresRemove or conditionally load based on browser targets

Performance Checklist

Performance:
- [ ] Bundle analyzed — no unexpected large chunks
- [ ] Routes lazy-loaded with loading boundaries/fallbacks
- [ ] Heavy components (modals, charts) loaded on demand
- [ ] Rendering strategy evaluated (SSR/SSG where applicable)
- [ ] Named imports only — no wildcard imports
- [ ] Memoization/caching applied where measured benefit exists
- [ ] No object/array literals created in render path
- [ ] State subscriptions are selective (not full-store)
- [ ] Images optimized (modern format, width/height, lazy-load)
- [ ] Animations use transform/opacity (not layout properties)
- [ ] All effects clean up: timers, listeners, abort controllers
- [ ] Long lists virtualized when item count exceeds visible area
- [ ] Third-party scripts loaded async/defer, non-essential ones lazy-loaded
- [ ] Baseline metrics documented for comparison
- [ ] Post-optimization metrics compared against baselines

Anti-Patterns

Anti-PatternInstead Do
Optimizing without profilingMeasure first, optimize second
Memoizing every componentProfile; only memoize components with frequent re-renders and stable props
Caching trivial computationSkip — overhead exceeds benefit
Unstable handler reference passed to memoized childStabilize the handler reference to preserve referential equality
Inline style={{}} objectsLift to module scope or memoize
Loading entire library synchronouslyCode-split and lazy-load heavy modules
Effect without cleanupAlways return a cleanup function for subscriptions and timers
Over-relying on will-changeUse sparingly — permanent use increases memory consumption
Using array index as list keyUse stable unique identifiers (database IDs)
Global state for component-local concernsKeep state close to where it is consumed

Framework-Specific Patterns

The patterns above are framework-agnostic. For framework-specific optimization APIs, load the appropriate reference:

  • React: See ./references/react-patterns.md — React.memo, useMemo, useCallback, React.lazy, Suspense.

Connected Skills

  • tsh-implementing-frontend — for component patterns that support performant rendering
  • tsh-writing-hooks — for memoization and cleanup patterns within custom hooks
  • tsh-reviewing-frontend — for performance-focused code review spot-checks
  • tsh-ensuring-accessibility — to verify optimizations (lazy-loading, virtualization) don't break keyboard navigation or screen reader access

© TheSoftwareHouse, MIT. 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 1 other file (references) in .github/skills/tsh-optimizing-frontend of TheSoftwareHouse/copilot-collections.

  • SKILL.md
  • references/react-patterns.md

Open the folder on GitHubat commit 2fbe51e

Compare with similar skills

Tsh Optimizing Frontend 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.

Tsh Optimizing Frontend compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tsh Optimizing Frontend this skillTheSoftwareHouse/copilot-collections284—~4.1kAutomated safety check: PassMIT
React Doctormakeplane/plane60k12 repos~657Automated safety check: PassAGPL-3.0
Fixing Motion Performanceibelick/ui-skills9.4k5 repos~1.4kAutomated safety check: PassMIT
GSAP Performance Tuninggreensock/gsap-skills16k4 repos~1kAutomated safety check: PassMIT
React Frontend Development Guidelinesdiet103/claude-code-infrastructure-showcase10k2 repos~2.9kAutomated safety check: PassMIT
Web Quality Auditaddyosmani/web-quality-skills2.9k—~2.6kAutomated safety check: PassMIT

Similar skills

  • React Doctor

    makeplane/plane

    Scans React code for lint, accessibility, bundle size and architecture issues, reports a health score and checks that changes do not lower it.

    60k GitHub starsUsed in 12 repos~657 tokens
    Frontend & DesignAuto-check passed
  • Fixing Motion Performance

    ibelick/ui-skills

    Audits and fixes web animation performance: layout thrashing, work that belongs on the compositor, scroll-linked motion and costly blur effects.

    9.4k GitHub starsUsed in 5 repos~1.4k tokens
    Frontend & DesignAuto-check passed
  • GSAP Performance Tuning

    greensock/gsap-skills

    Guides the agent to keep GSAP animations smooth by animating transforms and opacity, batching DOM reads and writes, and avoiding layout-heavy properties.

    16k GitHub starsUsed in 4 repos~1k tokens
    Frontend & DesignAuto-check passed
  • React Frontend Development Guidelines

    diet103/claude-code-infrastructure-showcase

    Guidelines for React 18 and TypeScript apps covering Suspense data fetching, lazy loading, feature folders, MUI v7 styling, TanStack Router and performance.

    10k GitHub starsUsed in 2 repos~2.9k tokens
    Frontend & DesignAuto-check passed
  • 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
  • SEO Google

    AgriciDaniel/codex-seo

    Google SEO APIs: Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, and GA4 organic traffic.

    787 GitHub starsUsed in 2 repos~3.4k tokens
    Frontend & DesignAuto-check passed

More from TheSoftwareHouse/copilot-collections

All 31 skills in this repo
  • Tsh Creating Skills

    TheSoftwareHouse/copilot-collections

    Create new skills (SKILL.md) for GitHub Copilot. An agent skill from TheSoftwareHouse/copilot-collections.

    284 GitHub stars~4.1k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Implementing Frontend

    TheSoftwareHouse/copilot-collections

    Frontend component patterns, composition, design token integration, barrel file organization, error handling, and Figma-to-code workflow.

    284 GitHub stars~2.6k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Implementing Terraform Modules

    TheSoftwareHouse/copilot-collections

    Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.

    284 GitHub stars~1.6k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Reviewing Frontend

    TheSoftwareHouse/copilot-collections

    Frontend-specific code review criteria, component anti-patterns, hooks quality, rendering correctness, accessibility and performance spot-checks, and module organization issues.

    284 GitHub stars~4.4k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Writing Hooks

    TheSoftwareHouse/copilot-collections

    Custom hook and composable patterns — naming, composition, stable return shapes, lifecycle cleanup, and testing strategies.

    284 GitHub stars~3k tokensUpdated 2 days ago
    Auto-check passed
  • Tsh Creating Instructions

    TheSoftwareHouse/copilot-collections

    Creates custom instruction files (.instructions.md) for GitHub Copilot in VS Code.

    284 GitHub stars~2.9k tokensUpdated 2 days ago
    Auto-check passed

Questions about Tsh Optimizing Frontend

What does Tsh Optimizing Frontend do?

Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management. Tsh Optimizing Frontend is an agent skill from TheSoftwareHouse/copilot-collections. Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.

When should I use Tsh Optimizing Frontend?

Tsh Optimizing Frontend fits situations like: optimizing component rendering; reducing bundle size; debugging performance issues; implementing lazy loading.

How do I install Tsh Optimizing Frontend in Claude Code?

Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a claude-code`. Or copy the skill folder (.github/skills/tsh-optimizing-frontend in TheSoftwareHouse/copilot-collections) into .claude/skills/tsh-optimizing-frontend in your project. Claude Code loads it when a task matches its description.

How do I install Tsh Optimizing Frontend in Codex?

Run `npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a codex`. Or copy the skill folder (.github/skills/tsh-optimizing-frontend in TheSoftwareHouse/copilot-collections) into .agents/skills/tsh-optimizing-frontend in your project. Codex loads it when a task matches its description.

Can I use Tsh Optimizing Frontend 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 TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tsh-optimizing-frontend, .gemini/skills/tsh-optimizing-frontend, .github/skills/tsh-optimizing-frontend and .opencode/skills/tsh-optimizing-frontend in your project.

What does Tsh Optimizing Frontend need to run?

Going by SKILL.md and its folder, Tsh Optimizing Frontend needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Tsh Optimizing Frontend access the network?

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

Is Tsh Optimizing Frontend safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tsh Optimizing Frontend use?

Tsh Optimizing Frontend is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tsh Optimizing Frontend use?

About 4.1k tokens (SKILL.md is roughly 16k 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 1.2k tokens, read only when the agent opens those files.

What are the alternatives to Tsh Optimizing Frontend?

Skills that share tags, products or a category with Tsh Optimizing Frontend: React Doctor (makeplane/plane, 60k stars), Fixing Motion Performance (ibelick/ui-skills, 9.4k stars), GSAP Performance Tuning (greensock/gsap-skills, 16k stars) and React Frontend Development Guidelines (diet103/claude-code-infrastructure-showcase, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tsh Optimizing Frontend?

TheSoftwareHouse (a GitHub organization) maintains it in TheSoftwareHouse/copilot-collections, which has 284 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 5, 2026.

Source: TheSoftwareHouse/copilot-collections on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.