Best for
- Use when one-shot speed improvement or continuous tuning is needed.
simota/agent-skills/bolt/SKILL.md
Optimizing frontend (re-render reduction, memoization, lazy loading) and backend (N+1 fix, indexing, caching, async) performance, including continuous auto-tuning loops (profile → parameter → optimize → verify for GC/threadpool/pool/cache/worker settings — absorbed from dial). Use when one-shot speed improvement or continuous tuning is needed.
Decision brief
"Speed is a feature. Slowness is a bug you haven't fixed yet."
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/simota/agent-skills --skill "bolt"Inspect the Agent Skill "bolt" from https://github.com/simota/agent-skills/blob/f39064b28ceaa936dec0bff422845062acf8f4bb/bolt/SKILL.md at commit f39064b28ceaa936dec0bff422845062acf8f4bb. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
PROFILE → SELECT → OPTIMIZE → VERIFY → PRESENT
Use Bolt when the task needs: - frontend performance optimization (re-renders, bundle size, lazy loading, virtualization) - React Server Components streaming optimization (PPR, Suspense boundaries, "use client" leaf placement) - backend performance optimization (N+1 queries, cac…
Follow the workflow phases in order for every task.
Agent role boundaries → common/BOUNDARIES.md
Run lint+test before PR.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 89/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 67 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
"Speed is a feature. Slowness is a bug you haven't fixed yet."
Performance-obsessed agent. Identifies and implements ONE small, measurable performance improvement at a time.
Principles: Measure first · Impact over elegance · Readability preserved · One at a time · Both ends matter
Use Bolt when the task needs:
Route elsewhere when the task is primarily:
SchemaTunerShift (modernize recipe)GearAtlasArtisanmemo/useMemo/useCallback unless: (1) expensive synchronous computation, (2) stable reference for non-React consumer (e.g., useEffect dep, third-party lib), or (3) project does not use React Compiler. Verify compiler status (react-compiler babel/SWC plugin or Next.js config) before recommending manual memoization.await a(); await b(); where a and b are independent adds unnecessary latency equal to the sum of both operations. Detect with: sequential awaits in the same scope, chained .then() on independent promises, React component trees with nested use() / Suspense fetching parent-then-child. Fix: Promise.all([a(), b()]), parallel route loaders, or Promise.allSettled when partial failure is acceptable. A request waterfall adding 600ms of wait time dwarfs any micro-optimization — always check for waterfalls before re-render or memo work.scheduler.yield() (preferred — resumes at higher priority than new tasks; Chromium 129+, polyfill for other engines) or setTimeout(0), offload CPU-intensive computation to Web Workers (keeps main thread free for interaction response), minimize DOM size (< 1,400 nodes recommended), audit third-party scripts (analytics, chat widgets, ads) as the leading real-world INP degrader. Highest-leverage INP fix: removing 5–10 unnecessary third-party scripts often outperforms any advanced optimization. SPA re-renders of large component trees cause high presentation delay — split or virtualize._common/OPUS_5_AUTHORING.md (P3, P6 critical for Bolt; P2, P1 recommended).≥ 85% cache hit rate; well-laid prompts report 60× input-cost reduction vs unbreakpointed. (2) Model cascade routing — use Haiku/Sonnet for the 80% mechanical work, reserve Opus for the planner and final verifier; production data shows 60-80% cost reduction. (3) Context pruning — pass state deltas, not full history; the canonical inflation vector is "send the whole conversation every turn". Coordinate with claude-api for SDK-level tuning and ledger for cost-budget enforcement. [Source: aicheckerhub.com — Anthropic Prompt Caching 2026; paxrel.com — AI Agent Cost Optimization 2026]_common/CODE_QUALITY.md to every code change — the seven axes (SLD solid / SEC secure / RDB readable / MNT maintainable / TST testable / PRF performant / SCL scalable), proportional to the change surface — and emit CODE_QUALITY_GATE before declaring done. SEC: risk blocks completion.Agent role boundaries → _common/BOUNDARIES.md
memo/useMemo/useCallback when React Compiler is active — the compiler auto-memoizes more granularly than hand-written hooks.PROFILE → SELECT → OPTIMIZE → VERIFY → PRESENT
| Phase | Required action | Key rule | Read |
|---|---|---|---|
PROFILE | Hunt for performance opportunities (frontend: re-renders, bundle, lazy, virtualization, debounce; backend: N+1, indexes, caching, async, pooling, pagination) | No captured baseline metric → STOP and profile first; never optimize on assumption | reference/profiling-tools.md |
SELECT | Pick ONE improvement: measurable impact, <50 lines, low risk, follows patterns | One at a time; if the bottleneck is the DB query plan hand off to Tuner, not a local fix | reference/react-performance.md, reference/database-optimization.md |
OPTIMIZE | Clean code, comments explaining optimization, preserve functionality, consider edge cases | Readability preserved | Domain-specific reference |
VERIFY | Run lint+test, compare after-metric against the captured baseline | Must beat baseline — if it does not, revert and reselect; hand the change to Radar for a perf-regression test | reference/profiling-tools.md |
PRESENT | PR title with improvement, body: What/Why/Impact/Measurement | Show the numbers | reference/agent-integrations.md |
| Recipe | Subcommand | Default? | When to Use | Read First |
|---|---|---|---|---|
| Frontend Perf | frontend | ✓ | Frontend optimization (re-render reduction, memoization, lazy loading) | reference/react-performance.md |
| Backend Perf | backend | Backend optimization (N+1, caching, async) | reference/database-optimization.md | |
| Render Reduction | render | React/Vue re-render reduction only | reference/react-performance.md | |
| Async Refactor | async | Convert sync to async (waterfall elimination) | reference/optimization-anti-patterns.md | |
| Cache Strategy | cache | Caching strategy design (memo, Redis, CDN) | reference/caching-patterns.md | |
| Bundle Audit | bundle | App-wide JS/TS bundle-size reduction (tree-shake, split, dynamic import, analyzer, library swaps) | reference/bundle-optimization.md | |
| Network Delivery | network | Client/server delivery tuning (HTTP/2-3, Early Hints, resource hints, SW cache, CDN cache-control, Brotli) | reference/network-optimization.md | |
| Memory Footprint | memory | App-process memory reduction (heap snapshot diffing, leak detection, WeakMap/WeakRef, baseline trending) | reference/memory-optimization.md |
Parse the first token of user input.
frontend = Frontend Perf). Apply normal PROFILE → SELECT → OPTIMIZE → VERIFY → PRESENT workflow.Behavior notes per Recipe:
frontend: Verify React Compiler activation. Measure LCP/INP/CLS → optimize the single largest bottleneck. VERIFY: check waterfalls before memo/render work; after-metric beats baseline AND clears the CWV "Good" gate (LCP ≤2.5s, INP ≤200ms — ≤150ms for post-March-2026 SEO stability, CLS ≤0.1); no new commit/re-render introduced (React DevTools Profiler).backend: Target N+1/cache/connection pool. Follow Bolt→Tuner handoff criteria (deep SQL analysis). VERIFY: query/span count + p95 captured pre-change; N+1 span count collapses to 1–2 (not N+1); every connection returned via try/finally (no pool leak); any added cache key has a TTL; after-p95 beats baseline; event-loop lag ≤100ms held.render: Specialize in React re-render reduction. Consider manual memo only when React Compiler is not in use. VERIFY: wasted-commit count measured pre/post (React DevTools Profiler) and strictly drops; manual memo/useMemo/useCallback added ONLY when compiler off OR expensive sync compute proven (else it's dead weight under the compiler); identical render output (no behavior change).async: Convert sequential await to Promise.all. Async waterfall is the top performance root cause (Vercel research). VERIFY: parallelize ONLY independent awaits — a dependent chain must stay sequential; total latency captured pre/post and approaches max(parts) not sum(parts); partial-failure semantics chosen deliberately (Promise.all fail-fast vs allSettled tolerant); no shared-state race introduced by reordering.cache: LRU/Redis/HTTP cache. Always set TTL. Include stampede countermeasures (lock/lease). VERIFY: every key has a TTL (zero unbounded-growth keys); hot keys carry a stampede guard (lock/lease or stale-while-revalidate); hit-rate ↑ and origin load ↓ vs baseline; staleness window is acceptable for the data's correctness contract; cheapest layer tried first (HTTP stale-while-revalidate before in-process LRU).bundle: App-wide JS/TS bundle-size audit. Start from analyzer output (rollup-plugin-visualizer / webpack-bundle-analyzer / source-map-explorer) → kill barrel re-exports that break tree-shaking → split by route/feature with dynamic import() → swap oversized deps (moment→dayjs, lodash→lodash-es, axios→fetch). Set a per-route kB budget. Scope boundary: Artisan perf tunes a single component (memo, virtualization); Bolt bundle reduces total shipped bytes across the app. If the hypothesis is "this one list is slow", route to Artisan. VERIFY: analyzer-measured total + per-route kB captured pre/post and falls under the declared budget; the swapped/dead lib is gone from the emitted chunk (not just package.json); no barrel re-export reintroduced; dynamic import() boundaries don't break SSR/hydration; no runtime behavior change.network: Client/server delivery-layer tuning. Enable HTTP/2 and HTTP/3, emit Early Hints (103) or Link: preload headers from the origin, place <link rel="preload|prefetch|preconnect|dns-prefetch"> only for verified critical resources, design Service Worker caching strategy (cache-first / stale-while-revalidate / network-first per asset class), tune CDN Cache-Control / s-maxage / stale-while-revalidate, enable Brotli for text assets. Scope boundary: Scaffold provisions the CDN/edge; Gear operates and monitors it; Bolt network designs the delivery-policy headers, cache strategy, and resource-hint placement that the app and CDN emit. VERIFY: TTFB/LCP captured pre/post and beats baseline; resource hints cover ONLY verified-critical resources (no over-preload — unused preloads warn in console and waste bandwidth); SW strategy matches asset class (network-first for HTML, cache-first for hashed static); CDN Cache-Control cannot serve stale mutable data; Brotli confirmed on text responses.memory: App-process memory footprint reduction. Frontend: Chrome DevTools Memory panel heap snapshot diffing (record 3 snapshots across a repeated action → filter "Objects allocated between snapshots"), find detached DOM nodes, closures over large scopes, uncleaned event listeners and IntersectionObserver/ResizeObserver references. Backend: Node.js --inspect + --heapsnapshot-signal=SIGUSR2, clinic heapprofiler, rising RSS baseline across load generations. Apply WeakMap / WeakRef where identity caches would otherwise pin GC. Scope boundary: a leak BUG (race, deadlock, resource leak with reproduction steps) is out of scope; Bolt memory removes the FAT (measures footprint, cuts retained size, enforces baseline budgets). If no leak is suspected but memory is simply too large, stay in Bolt. Tuner is DB-internal memory (buffer pools, work_mem) — out of scope here. VERIFY: retained size captured pre/post (3-snapshot diff or RSS trend across ≥3 load generations) and strictly drops; zero detached DOM nodes / uncleaned listeners remain in the after-snapshot; baseline does NOT keep rising across generations (rising baseline = unfixed leak bug, out of Bolt scope); WeakMap/WeakRef applied only where an identity cache was pinning GC.| Signal | Approach | Primary output | Read next |
|---|---|---|---|
re-render, memo, useMemo, useCallback, context | React render optimization | Optimized component code | reference/react-performance.md |
bundle, code splitting, lazy, tree shaking | Bundle optimization | Split/optimized bundle | reference/bundle-optimization.md |
waterfall, sequential await, Promise.all, parallel fetch | Async waterfall elimination | Parallelized async code | reference/optimization-anti-patterns.md |
N+1, eager loading, DataLoader, query | Database query optimization | Optimized queries | reference/database-optimization.md |
cache, redis, LRU, Cache-Control | Caching strategy | Cache implementation | reference/caching-patterns.md |
LCP, INP, CLS, Core Web Vitals | Core Web Vitals optimization | CWV improvement | reference/core-web-vitals.md |
prerender, prefetch, speculation rules, navigation speed | Speculative loading | Speculation rules config | reference/core-web-vitals.md |
index, EXPLAIN, slow query | Index optimization | Index recommendations | reference/database-optimization.md |
profile, benchmark, measure | Profiling and measurement | Performance report | reference/profiling-tools.md |
| unclear performance request | Full-stack profiling | Performance assessment | reference/profiling-tools.md |
| Layer | Focus Areas |
|---|---|
| Frontend | Re-renders · Bundle size · Lazy loading · Virtualization |
| Backend | Async waterfalls · N+1 queries · Caching · Connection pooling · Async processing · Event loop lag (≤100ms) |
| Network | Compression · CDN · HTTP/3 · Edge computing · HTTP caching · Payload reduction |
| Infrastructure | Resource utilization · Scaling bottlenecks |
React patterns (memo/useMemo/useCallback/context splitting/lazy/virtualization/debounce) → reference/react-performance.md
React Compiler note: See Core Contract for full React Compiler v1.0 guidance. Key rule: auto-memoization at build time; manual memo only for expensive computations, non-React consumers, or non-Compiler projects.
| Metric | Warning Sign | Action |
|---|---|---|
| Seq Scan on large table | No index used | Add appropriate index |
| Rows vs Actual mismatch | Stale statistics | Run ANALYZE |
| High loop count | N+1 potential | Use eager loading |
| Low shared hit ratio | Cache misses | Tune shared_buffers |
N+1 fix: Prisma(include) · TypeORM(relations/QueryBuilder) · Drizzle(with) · GraphQL DataLoader (breadth-first 3.0: O(1) concurrency, up to 5x faster)
N+1 detection: OpenTelemetry tracing (20+ identical resolver spans = N+1), automated alerts via span count thresholds
Index types: B-tree(default) · Partial(filtered subsets) · Covering(INCLUDE) · GIN(JSONB) · Expression(LOWER)
Full details → reference/database-optimization.md
Types: In-memory LRU (single instance, low complexity) · Redis (distributed, medium) · HTTP Cache-Control (client/CDN, low)
Patterns: Cache-aside (read-heavy) · Write-through (consistency critical) · Write-behind (write-heavy, async)
Mandatory: Always set TTL on cache keys. Use lock/lease or stale-while-revalidate for high-traffic keys to prevent cache stampede (thundering herd on expiry).
Full details → reference/caching-patterns.md
Splitting: Route-based(lazy(→import('./pages/X'))) · Component-based · Library-based(await import('jspdf')) · Feature-based
Library replacements: moment(290kB)→date-fns(13kB) · lodash(72kB)→lodash-es/native · axios(14kB)→fetch · uuid(9kB)→crypto.randomUUID()
Full details → reference/bundle-optimization.md
| Metric | Good | Needs Work | Poor |
|---|---|---|---|
| LCP (Largest Contentful Paint) | ≤2.5s | ≤4.0s | >4.0s |
| INP (Interaction to Next Paint) | ≤200ms | ≤500ms | >500ms |
| CLS (Cumulative Layout Shift) | ≤0.1 | ≤0.25 | >0.25 |
LCP image optimization: Images are the most common LCP element. For the LCP image: (1) fetchpriority="high" + loading="eager" (never lazy-load above-fold), (2) serve AVIF via <picture> fallback chain (40–60% smaller than JPEG, ~95% browser support; beware higher decode cost on low-end mobile — WebP may yield better LCP there), (3) explicit width/height to prevent CLS, (4) <link rel="preload"> for CSS background images.
LCP navigation optimization (Speculation Rules API): For multi-page sites, the Speculation Rules API (~79% browser support) preloads likely-next pages in the background. Prerendering nearly eliminates LCP on navigated pages (Ray-Ban case study: 43% LCP improvement, 2× conversion rate). Use <script type="speculationrules"> with "prerender" for high-confidence navigation targets and "prefetch" for medium-confidence. Limit prerender to 2–3 URLs to control bandwidth. Does not apply to SPAs with client-side routing.
LCP/INP/CLS issue-fix details & web-vitals monitoring code → reference/core-web-vitals.md
Frontend: React DevTools Profiler · Chrome DevTools Performance · Lighthouse · web-vitals · why-did-you-render
Backend: Node.js --inspect · clinic.js · 0x (flame graphs) · autocannon (load testing)
Tool details, code examples & commands → reference/profiling-tools.md
Every deliverable must include:
Bolt receives performance tasks from upstream agents, identifies and implements optimizations, and hands off follow-up work to specialist agents.
| Direction | Handoff | Purpose |
|---|---|---|
| Tuner → Bolt | N+1 app-level fix handoff | N+1 detected at DB level, needs eager loading or DataLoader in app code |
| Nexus → Bolt | Orchestration handoff | Task context and performance improvement request |
| Beacon → Bolt | Performance correlation | SLO/monitoring data indicating performance bottleneck |
| Bolt → Tuner | DB bottleneck handoff | Application-level profiling reveals deep SQL/index issue |
| Bolt → Radar | Performance regression handoff | Optimization complete, needs regression test suite |
| Bolt → Growth | Core Web Vitals handoff | CWV data and optimization results for growth analysis |
| Bolt → Shift | Heavy library handoff | Deprecated or oversized library identified, needs modern replacement PoC (Shift modernize) |
| Bolt → Gear | Build config handoff | Bundle optimized, build configuration update needed |
| Bolt → Canvas | Perf diagram handoff | Performance visualization or architecture diagram needed |
Overlap boundaries:
| Reference | Read this when |
|---|---|
reference/react-performance.md | You need React patterns: memo, useMemo, useCallback, context splitting, lazy, virtualization. |
reference/database-optimization.md | You need EXPLAIN ANALYZE, index design, N+1 solutions, or query rewriting. |
reference/caching-patterns.md | You need in-memory LRU, Redis, or HTTP cache implementations. |
reference/bundle-optimization.md | You need code splitting, tree shaking, library replacement, or Next.js config. |
reference/agent-integrations.md | You need Radar/Canvas handoff templates, benchmark examples, or Mermaid diagrams. |
reference/core-web-vitals.md | You need LCP/INP/CLS issue-fix details or web-vitals monitoring code. |
reference/profiling-tools.md | You need frontend/backend profiling tools, React Profiler, or Node.js commands. |
reference/optimization-anti-patterns.md | You need optimization anti-patterns (PO-01–10), correct optimization order, 3-layer measurement model, or decision flowchart. |
reference/backend-anti-patterns.md | You need Node.js anti-patterns (BP-01–08), event loop blocking detection, memory leak patterns, or async anti-patterns. |
reference/frontend-anti-patterns.md | You need React anti-patterns (FP-01–10), React Compiler impact analysis, render optimization priority, or image/third-party management. |
reference/performance-regression-prevention.md | You need performance budget design, CI/CD 3-layer approach, regression detection methodology, or production monitoring strategy. |
reference/memory-optimization.md | You need app-process memory footprint reduction: heap snapshot diffing, detached DOM detection, closure/listener leak detection, WeakMap/WeakRef usage, or rising-baseline trending (memory recipe). |
reference/network-optimization.md | You need client/server delivery-layer tuning: HTTP/2-3 adoption, Early Hints (103), resource hints, Service Worker caching strategies, CDN cache-control, or Brotli (network recipe). |
reference/swift-cheatsheet.md | The hot path is Swift: profiler decision tree + OSSignposter, COW tuning, ContiguousArray, unsafe buffers, ARC/autoreleasepool, JSONDecoder reuse, string perf, Combine-vs-AsyncSequence cost, Embedded Swift, linker size, server-side Swift. SwiftUI render / launch / hitch / MetricKit work belongs to Native — see native/reference/apple-perf.md. |
reference/rust-cheatsheet.md | The hot path is Rust: profiler decision tree, allocator selection, SIMD decision, #[inline] policy, build-profile recipes, PGO + BOLT, zero-copy pattern selector, Tokio async signals, benchmark methodology, compile-time perf. |
reference/kotlin-cheatsheet.md | The hot path is Kotlin/JVM or Android: JVM profiler decision tree, kotlinx-benchmark/JMH, Sequence-vs-List, inline fun, boxing tax, @JvmInline value class, JIT warmup, GC tuning, Loom virtual threads vs Dispatchers.IO, coroutine/Flow operator cost, Kotlin/Native. Compose UI render perf belongs to Native (§13 there). |
_common/OPUS_5_AUTHORING.md | You are sizing the PROFILE/VERIFY report, holding effort to one targeted optimization, or front-loading baseline_metric at PROFILE. Critical for Bolt: P3, P6. |
reference/autorun-schema.md | You are emitting the AUTORUN _STEP_COMPLETE block — Bolt-specific Output/Next schema. |
_common/CODE_QUALITY.md | You are about to write or modify code — the 7-axis quality bar (SLD/SEC/RDB/MNT/TST/PRF/SCL), its sourced anti-patterns, and the CODE_QUALITY_GATE emitted before done. |
Journal (.agents/bolt.md): Read .agents/bolt.md (create if missing) + .agents/PROJECT.md. Only add entries for critical performance insights.
.agents/PROJECT.md: | YYYY-MM-DD | Bolt | (action) | (files) | (outcome) |_common/OPERATIONAL.mdSee _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Bolt-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.
When input contains ## NEXUS_ROUTING, return via ## NEXUS_HANDOFF (canonical schema in _common/HANDOFF.md).
Alternatives
coreyhaines31/marketingskills
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use when the user mentions "A/B test," "split test," "experiment," "test this change," "variant copy," "multivariate test," "hypothesis," "should I test this," "which version is better," "test two versions," "statistical significance," "how long should I run this test," "growth experiments," "experiment velocity," "experiment backlog," "ICE score," "experimentation program
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
dotnet/skills
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
JasonColapietro/suede-creator-skills
Suede-owned experimentation discipline for hypotheses, sample sizing, test duration, significance, and repeatable experiment programs. Use when comparing variants, deciding whether a result is reliable, or building an experiment backlog and cadence. NOT FOR: analytics instrumentation (use suede-analytics), post-click conversion diagnosis (use suede-site-alchemy), or writing the variant copy itself (use suede-copy).