بنقرة واحدة
perf
Web performance audit - Core Web Vitals, bundle analysis, Lighthouse patterns.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Web performance audit - Core Web Vitals, bundle analysis, Lighthouse patterns.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | perf |
| description | Web performance audit - Core Web Vitals, bundle analysis, Lighthouse patterns. |
| triggers | ["perf","performance","lighthouse","bundle size","core web vitals"] |
| allowed-tools | Bash, Read, Grep, Glob |
| model | opus |
| user-invocable | true |
Run in parallel:
# Bundle analysis
npx next build 2>&1 | tail -30 # Check bundle sizes
npx @next/bundle-analyzer # Visual treemap (if installed)
# Lighthouse (requires Chrome)
npx lighthouse http://localhost:3000 --output=json --quiet
| Metric | Good | Needs Work | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | < 2.5s | 2.5-4s | > 4s |
| INP (Interaction to Next Paint) | < 200ms | 200-500ms | > 500ms |
| CLS (Cumulative Layout Shift) | < 0.1 | 0.1-0.25 | > 0.25 |
| FCP (First Contentful Paint) | < 1.8s | 1.8-3s | > 3s |
| TTFB (Time to First Byte) | < 800ms | 800-1800ms | > 1800ms |
| Category | Target | Action if Over |
|---|---|---|
| Total JS | < 200KB gzipped | Code split, lazy load |
| Single chunk | < 50KB | Dynamic import |
| Images | < 100KB each | WebP, compress, lazy load |
| Fonts | < 50KB per font | Subset, swap display |
// ❌ Bad
<img src="/hero.png" />
// ✅ Good - Next.js Image
import Image from 'next/image'
<Image src="/hero.png" width={1200} height={600} priority />
next/image for automatic WebP, sizing, lazy loadpriority to above-the-fold images (LCP)loading="lazy" for below-fold// ❌ Bad - imports everything upfront
import { HeavyChart } from '@/components/heavy-chart'
// ✅ Good - lazy load
import dynamic from 'next/dynamic'
const HeavyChart = dynamic(() => import('@/components/heavy-chart'), {
loading: () => <Skeleton className="h-64" />
})
// Memo expensive components
const ExpensiveList = React.memo(({ items }) => (
items.map(item => <Card key={item.id} {...item} />)
))
// useMemo for expensive calculations
const sorted = useMemo(() =>
items.sort((a, b) => b.score - a.score),
[items]
)
// useCallback for stable references
const handleClick = useCallback((id: string) => {
setSelected(id)
}, [])
// next/font - zero layout shift
import { Inter } from 'next/font/google'
const inter = Inter({ subsets: ['latin'], display: 'swap' })
// Defer non-critical scripts
<Script src="https://analytics.com/script.js" strategy="lazyOnload" />
// ❌ Bad - fetches all columns
const { data } = await supabase.from('songs').select('*')
// ✅ Good - select only needed columns
const { data } = await supabase
.from('songs')
.select('id, title, artist_id, audio_url')
.limit(20)
Performance Audit
─────────────────
LCP: 1.8s ✅
INP: 150ms ✅
CLS: 0.05 ✅
FCP: 1.2s ✅
Bundle: 180KB gzipped ✅
Largest chunk: audio-player.js (45KB) ✅
Issues Found:
1. [HIGH] Unoptimized hero image (2.1MB PNG) → Convert to WebP
2. [MEDIUM] No code splitting on /studio page → Dynamic import
3. [LOW] Unused lodash import → Replace with native
Score: 85/100
| Skill | How It Integrates |
|---|---|
audit | Perf agent uses these patterns |
ship | Pre-deploy perf check |
review | Flag perf regressions in code review |
Show token / tool usage stats from the local telemetry log. Use when you want to know "which tools am I burning context on", "which skills are expensive", or "was yesterday's session mostly Read/Grep or actually productive".
Parallel quality audit with 7 specialized agents (Opus). Finds bugs, violations, and quality issues. Use audit for fixes, brainstorm for features.
Manage environment variables with Doppler — auto-install CLI, login, link projects, wrap commands with `doppler run`. Replaces scattered .env files with a hub/spoke architecture.
Scaffolds new projects or onboards existing ones. Detects stack, creates monorepo/single-app, configures strict tooling. Use for greenfield or first-time setup.
Archives completed stories from prd.json to reduce token usage.
Autonomous task execution with testing and security. Works through all tasks without stopping.