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.
Frontend rendering optimization, code splitting, memoization strategies, bundle size control, asset optimization, and memory management.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .claude/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontendType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .agents/skills/tsh-optimizing-frontend && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .agents/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .cursor/skills/tsh-optimizing-frontend && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .cursor/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/TheSoftwareHouse/copilot-collections.git --path .github/skills/tsh-optimizing-frontend--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .gemini/skills/tsh-optimizing-frontend && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .gemini/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontendInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .github/skills/tsh-optimizing-frontend && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .github/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add TheSoftwareHouse/copilot-collections --skill tsh-optimizing-frontend -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install TheSoftwareHouse/copilot-collections tsh-optimizing-frontend --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/TheSoftwareHouse/copilot-collections.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/tsh-optimizing-frontend .opencode/skills/tsh-optimizing-frontend && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tsh-optimizing-frontend" agent skill from https://github.com/TheSoftwareHouse/copilot-collections/tree/main/.github/skills/tsh-optimizing-frontend into .opencode/skills/tsh-optimizing-frontend/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsh-optimizing-frontend", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tsh-optimizing-frontendFrontend 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. 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.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2fbe51e. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from TheSoftwareHouse/copilot-collections at commit 2fbe51e, republished under its MIT licence (© TheSoftwareHouse). 1,723 words, ~4,111 tokens.
.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.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>
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 improvementStep 1: Measure current performance
Before optimizing anything, establish baselines:
performance.mark() / performance.measure() for custom timing of specific operations.Step 2: Optimize bundle size
Reduce what ships to the user:
import { Button } from 'lib' — never import * as Lib from 'lib'. Wildcard imports defeat tree shaking and pull in the entire module.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.depcheck or equivalent) regularly. Remove unused packages. Before adding a new dependency, check its bundle impact — a small utility should not cost 50KB.Step 3: Optimize rendering
Reduce unnecessary re-render work:
Step 4: Optimize assets and DOM
width and height attributes to prevent layout shift. Lazy-load images below the fold using native loading="lazy" or an intersection observer.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.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.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:
addEventListener must have a corresponding removeEventListener in the component's cleanup phase. Forgetting cleanup causes listeners to accumulate on long-lived pages.setTimeout needs clearTimeout and every setInterval needs clearInterval in cleanup. Leaked intervals continue executing after the component is gone.AbortController to cancel pending network requests when the component unmounts. Responses arriving after unmount can cause state updates on unmounted components.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:
Default thresholds (based on web.dev/Google recommendations):
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| Lighthouse Performance Score | ≥ 90 | 50–89 | < 50 |
| LCP (Largest Contentful Paint) | ≤ 2.5s | 2.5s–4.0s | > 4.0s |
| INP (Interaction to Next Paint) | ≤ 200ms | 200ms–500ms | > 500ms |
| CLS (Cumulative Layout Shift) | ≤ 0.1 | 0.1–0.25 | > 0.25 |
Execution steps:
package.json).npx lighthouse <URL> --output=json --output-path=./lighthouse-report.json --chrome-flags="--headless".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.
| Situation | Memoize? | Why |
|---|---|---|
| Expensive computation (sort/filter 1000+ items) | Yes (cache computation) | Saves CPU on re-renders |
| Handler passed to memoized child | Yes (stabilize reference) | Preserves referential equality |
| Simple arithmetic or string concat | No | Memo overhead exceeds computation cost |
| Component with static or rarely-changing props | Maybe (component memo) | Profile first — often unnecessary |
| Inline object passed as prop | Yes (lift or cache) | New identity each render causes child re-render |
| Top-level handler (not passed down) | No | Nothing benefits from a stable reference |
| Red Flag | Action |
|---|---|
| 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 code | Import directly from source file |
Unused dependencies in package.json | Run audit tool and remove unused |
| CSS framework loaded fully (not purged) | Enable CSS purging in build configuration |
| Polyfills for widely-supported features | Remove or conditionally load based on browser targets |
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-Pattern | Instead Do |
|---|---|
| Optimizing without profiling | Measure first, optimize second |
| Memoizing every component | Profile; only memoize components with frequent re-renders and stable props |
| Caching trivial computation | Skip — overhead exceeds benefit |
| Unstable handler reference passed to memoized child | Stabilize the handler reference to preserve referential equality |
Inline style={{}} objects | Lift to module scope or memoize |
| Loading entire library synchronously | Code-split and lazy-load heavy modules |
| Effect without cleanup | Always return a cleanup function for subscriptions and timers |
Over-relying on will-change | Use sparingly — permanent use increases memory consumption |
| Using array index as list key | Use stable unique identifiers (database IDs) |
| Global state for component-local concerns | Keep state close to where it is consumed |
The patterns above are framework-agnostic. For framework-specific optimization APIs, load the appropriate reference:
./references/react-patterns.md — React.memo, useMemo, useCallback, React.lazy, Suspense.tsh-implementing-frontend — for component patterns that support performant renderingtsh-writing-hooks — for memoization and cleanup patterns within custom hookstsh-reviewing-frontend — for performance-focused code review spot-checkstsh-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
SKILL.md and 1 other file (references) in .github/skills/tsh-optimizing-frontend of TheSoftwareHouse/copilot-collections.
Open the folder on GitHubat commit 2fbe51e
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tsh Optimizing Frontend this skillTheSoftwareHouse/copilot-collections | 284 | — | ~4.1k | Automated safety check: Pass | MIT | |
| React Doctormakeplane/plane | 60k | 12 repos | ~657 | Automated safety check: Pass | AGPL-3.0 | |
| Fixing Motion Performanceibelick/ui-skills | 9.4k | 5 repos | ~1.4k | Automated safety check: Pass | MIT | |
| GSAP Performance Tuninggreensock/gsap-skills | 16k | 4 repos | ~1k | Automated safety check: Pass | MIT | |
| React Frontend Development Guidelinesdiet103/claude-code-infrastructure-showcase | 10k | 2 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Web Quality Auditaddyosmani/web-quality-skills | 2.9k | — | ~2.6k | Automated safety check: Pass | MIT |
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.
ibelick/ui-skills
Audits and fixes web animation performance: layout thrashing, work that belongs on the compositor, scroll-linked motion and costly blur effects.
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.
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.
addyosmani/web-quality-skills
Run an evidence-led web quality audit covering performance, accessibility, SEO, best practices, and agentic browsing.
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.
TheSoftwareHouse/copilot-collections
Create new skills (SKILL.md) for GitHub Copilot. An agent skill from TheSoftwareHouse/copilot-collections.
TheSoftwareHouse/copilot-collections
Frontend component patterns, composition, design token integration, barrel file organization, error handling, and Figma-to-code workflow.
TheSoftwareHouse/copilot-collections
Build reusable Terraform modules for AWS, Azure, and GCP infrastructure following infrastructure-as-code best practices.
TheSoftwareHouse/copilot-collections
Frontend-specific code review criteria, component anti-patterns, hooks quality, rendering correctness, accessibility and performance spot-checks, and module organization issues.
TheSoftwareHouse/copilot-collections
Custom hook and composable patterns — naming, composition, stable return shapes, lifecycle cleanup, and testing strategies.
TheSoftwareHouse/copilot-collections
Creates custom instruction files (.instructions.md) for GitHub Copilot in VS Code.
Categories
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.
Tsh Optimizing Frontend fits situations like: optimizing component rendering; reducing bundle size; debugging performance issues; implementing lazy loading.
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.
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.
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.
Going by SKILL.md and its folder, Tsh Optimizing Frontend needs the command-line tools its instructions call (npx). Our summary lists: Node.js.
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.
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.
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.
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.
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.
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.