opencode-skills-collection 3.0.35 → 3.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +15 -1
- package/bundled-skills/accesslint-audit/SKILL.md +115 -0
- package/bundled-skills/accesslint-diff/SKILL.md +81 -0
- package/bundled-skills/accesslint-scan/SKILL.md +47 -0
- package/bundled-skills/composition-patterns/SKILL.md +87 -0
- package/bundled-skills/composition-patterns/rules/_sections.md +29 -0
- package/bundled-skills/composition-patterns/rules/_template.md +24 -0
- package/bundled-skills/composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/bundled-skills/composition-patterns/rules/architecture-compound-components.md +112 -0
- package/bundled-skills/composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/bundled-skills/composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/bundled-skills/composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/bundled-skills/composition-patterns/rules/state-context-interface.md +191 -0
- package/bundled-skills/composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/bundled-skills/composition-patterns/rules/state-lift-state.md +125 -0
- package/bundled-skills/debugging-toolkit/SKILL.md +35 -0
- package/bundled-skills/deploy-to-vercel/SKILL.md +304 -0
- package/bundled-skills/deploy-to-vercel/resources/deploy-codex.sh +301 -0
- package/bundled-skills/deploy-to-vercel/resources/deploy.sh +301 -0
- package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
- package/bundled-skills/docs/maintainers/backups/README-2026-06-02.md +687 -0
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +4 -4
- package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
- package/bundled-skills/docs/users/bundles.md +245 -1
- package/bundled-skills/docs/users/claude-code-skills.md +1 -1
- package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
- package/bundled-skills/docs/users/getting-started.md +1 -1
- package/bundled-skills/docs/users/kiro-integration.md +1 -1
- package/bundled-skills/docs/users/plugins.md +21 -13
- package/bundled-skills/docs/users/specialized-plugin-roadmap.md +95 -0
- package/bundled-skills/docs/users/usage.md +4 -4
- package/bundled-skills/docs/users/visual-guide.md +4 -4
- package/bundled-skills/polis-protocol/SKILL.md +93 -0
- package/bundled-skills/python-development/SKILL.md +35 -0
- package/bundled-skills/radix-ui-design-system/SKILL.md +2 -2
- package/bundled-skills/react-native-skills/SKILL.md +120 -0
- package/bundled-skills/react-native-skills/rules/_sections.md +86 -0
- package/bundled-skills/react-native-skills/rules/_template.md +28 -0
- package/bundled-skills/react-native-skills/rules/animation-derived-value.md +53 -0
- package/bundled-skills/react-native-skills/rules/animation-gesture-detector-press.md +95 -0
- package/bundled-skills/react-native-skills/rules/animation-gpu-properties.md +65 -0
- package/bundled-skills/react-native-skills/rules/design-system-compound-components.md +66 -0
- package/bundled-skills/react-native-skills/rules/fonts-config-plugin.md +71 -0
- package/bundled-skills/react-native-skills/rules/imports-design-system-folder.md +68 -0
- package/bundled-skills/react-native-skills/rules/js-hoist-intl.md +61 -0
- package/bundled-skills/react-native-skills/rules/list-performance-callbacks.md +44 -0
- package/bundled-skills/react-native-skills/rules/list-performance-function-references.md +132 -0
- package/bundled-skills/react-native-skills/rules/list-performance-images.md +53 -0
- package/bundled-skills/react-native-skills/rules/list-performance-inline-objects.md +97 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-expensive.md +94 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-memo.md +82 -0
- package/bundled-skills/react-native-skills/rules/list-performance-item-types.md +104 -0
- package/bundled-skills/react-native-skills/rules/list-performance-virtualize.md +67 -0
- package/bundled-skills/react-native-skills/rules/monorepo-native-deps-in-app.md +46 -0
- package/bundled-skills/react-native-skills/rules/monorepo-single-dependency-versions.md +63 -0
- package/bundled-skills/react-native-skills/rules/navigation-native-navigators.md +188 -0
- package/bundled-skills/react-native-skills/rules/react-compiler-destructure-functions.md +50 -0
- package/bundled-skills/react-native-skills/rules/react-compiler-reanimated-shared-values.md +48 -0
- package/bundled-skills/react-native-skills/rules/react-state-dispatcher.md +91 -0
- package/bundled-skills/react-native-skills/rules/react-state-fallback.md +56 -0
- package/bundled-skills/react-native-skills/rules/react-state-minimize.md +65 -0
- package/bundled-skills/react-native-skills/rules/rendering-no-falsy-and.md +74 -0
- package/bundled-skills/react-native-skills/rules/rendering-text-in-text-component.md +36 -0
- package/bundled-skills/react-native-skills/rules/scroll-position-no-state.md +82 -0
- package/bundled-skills/react-native-skills/rules/state-ground-truth.md +80 -0
- package/bundled-skills/react-native-skills/rules/ui-expo-image.md +66 -0
- package/bundled-skills/react-native-skills/rules/ui-image-gallery.md +104 -0
- package/bundled-skills/react-native-skills/rules/ui-measure-views.md +78 -0
- package/bundled-skills/react-native-skills/rules/ui-menus.md +174 -0
- package/bundled-skills/react-native-skills/rules/ui-native-modals.md +77 -0
- package/bundled-skills/react-native-skills/rules/ui-pressable.md +61 -0
- package/bundled-skills/react-native-skills/rules/ui-safe-area-scroll.md +65 -0
- package/bundled-skills/react-native-skills/rules/ui-scrollview-content-inset.md +45 -0
- package/bundled-skills/react-native-skills/rules/ui-styling.md +87 -0
- package/bundled-skills/skill-issue/SKILL.md +73 -0
- package/bundled-skills/tdd-workflows/SKILL.md +35 -0
- package/bundled-skills/vercel-cli-with-tokens/SKILL.md +361 -0
- package/bundled-skills/vercel-optimize/CONTRIBUTING.md +41 -0
- package/bundled-skills/vercel-optimize/SKILL.md +331 -0
- package/bundled-skills/vercel-optimize/lib/auth-route.mjs +23 -0
- package/bundled-skills/vercel-optimize/lib/budget-summary.mjs +182 -0
- package/bundled-skills/vercel-optimize/lib/citations.mjs +139 -0
- package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +143 -0
- package/bundled-skills/vercel-optimize/lib/dedup-recs.mjs +325 -0
- package/bundled-skills/vercel-optimize/lib/deep-dive.mjs +350 -0
- package/bundled-skills/vercel-optimize/lib/display-labels.mjs +185 -0
- package/bundled-skills/vercel-optimize/lib/extract-claims.mjs +550 -0
- package/bundled-skills/vercel-optimize/lib/framework-support.mjs +67 -0
- package/bundled-skills/vercel-optimize/lib/gates/build-minutes-fanout.mjs +69 -0
- package/bundled-skills/vercel-optimize/lib/gates/cold-start.mjs +66 -0
- package/bundled-skills/vercel-optimize/lib/gates/contract.mjs +79 -0
- package/bundled-skills/vercel-optimize/lib/gates/cwv-poor.mjs +87 -0
- package/bundled-skills/vercel-optimize/lib/gates/external-api-slow.mjs +55 -0
- package/bundled-skills/vercel-optimize/lib/gates/hard-gates.mjs +73 -0
- package/bundled-skills/vercel-optimize/lib/gates/index.mjs +45 -0
- package/bundled-skills/vercel-optimize/lib/gates/isr-overrevalidation.mjs +62 -0
- package/bundled-skills/vercel-optimize/lib/gates/middleware-heavy.mjs +51 -0
- package/bundled-skills/vercel-optimize/lib/gates/observability-events-attribution.mjs +56 -0
- package/bundled-skills/vercel-optimize/lib/gates/platform-bot-protection.mjs +115 -0
- package/bundled-skills/vercel-optimize/lib/gates/platform-fluid-compute.mjs +83 -0
- package/bundled-skills/vercel-optimize/lib/gates/region-misconfig.mjs +64 -0
- package/bundled-skills/vercel-optimize/lib/gates/route-errors.mjs +80 -0
- package/bundled-skills/vercel-optimize/lib/gates/scanner-driven.mjs +122 -0
- package/bundled-skills/vercel-optimize/lib/gates/select-candidates.mjs +134 -0
- package/bundled-skills/vercel-optimize/lib/gates/slow-route.mjs +88 -0
- package/bundled-skills/vercel-optimize/lib/gates/types.d.ts +38 -0
- package/bundled-skills/vercel-optimize/lib/gates/uncached-route.mjs +93 -0
- package/bundled-skills/vercel-optimize/lib/gates/usage-spike-triage.mjs +121 -0
- package/bundled-skills/vercel-optimize/lib/grade-recommendation.mjs +155 -0
- package/bundled-skills/vercel-optimize/lib/impact-label.mjs +126 -0
- package/bundled-skills/vercel-optimize/lib/impact-magnitude.mjs +60 -0
- package/bundled-skills/vercel-optimize/lib/investigation-brief.mjs +610 -0
- package/bundled-skills/vercel-optimize/lib/observation-safety.mjs +174 -0
- package/bundled-skills/vercel-optimize/lib/project-facts.mjs +99 -0
- package/bundled-skills/vercel-optimize/lib/queries.mjs +315 -0
- package/bundled-skills/vercel-optimize/lib/reconcile-candidates.mjs +372 -0
- package/bundled-skills/vercel-optimize/lib/render-report.mjs +955 -0
- package/bundled-skills/vercel-optimize/lib/repo-root.mjs +86 -0
- package/bundled-skills/vercel-optimize/lib/route-normalize.mjs +220 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/bot-protection-certainty.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/cache-tag-invalidation-certainty.mjs +30 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/count-correct.mjs +52 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/function-duration-invocations.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/index.mjs +79 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/middleware-conflict.mjs +36 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/missing-citation.mjs +16 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/pre-release.mjs +74 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/rate-limit.mjs +67 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/rendering-mode-mislabel.mjs +38 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/undeclared-dep.mjs +78 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/vercel-directive-strip.mjs +37 -0
- package/bundled-skills/vercel-optimize/lib/sanitizers/window-units.mjs +32 -0
- package/bundled-skills/vercel-optimize/lib/scanners/cache-components-suspense-dedupe.mjs +109 -0
- package/bundled-skills/vercel-optimize/lib/scanners/edge-heavy-import.mjs +94 -0
- package/bundled-skills/vercel-optimize/lib/scanners/force-dynamic.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/headers-in-page.mjs +44 -0
- package/bundled-skills/vercel-optimize/lib/scanners/index.mjs +35 -0
- package/bundled-skills/vercel-optimize/lib/scanners/large-static-asset.mjs +92 -0
- package/bundled-skills/vercel-optimize/lib/scanners/max-age-without-s-maxage.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/middleware-broad-matcher.mjs +55 -0
- package/bundled-skills/vercel-optimize/lib/scanners/missing-cache-headers.mjs +90 -0
- package/bundled-skills/vercel-optimize/lib/scanners/prisma-include-tree.mjs +42 -0
- package/bundled-skills/vercel-optimize/lib/scanners/region-pin-in-config.mjs +88 -0
- package/bundled-skills/vercel-optimize/lib/scanners/source-maps-production.mjs +36 -0
- package/bundled-skills/vercel-optimize/lib/scanners/sveltekit-prerender-missing.mjs +43 -0
- package/bundled-skills/vercel-optimize/lib/scanners/turbo-force-bypass.mjs +129 -0
- package/bundled-skills/vercel-optimize/lib/scanners/unoptimized-image.mjs +113 -0
- package/bundled-skills/vercel-optimize/lib/scanners/use-cache-date-stamp.mjs +106 -0
- package/bundled-skills/vercel-optimize/lib/support-topics.mjs +355 -0
- package/bundled-skills/vercel-optimize/lib/throttle.mjs +273 -0
- package/bundled-skills/vercel-optimize/lib/util.mjs +17 -0
- package/bundled-skills/vercel-optimize/lib/vercel.mjs +784 -0
- package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +1296 -0
- package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +521 -0
- package/bundled-skills/vercel-optimize/references/candidates.md +176 -0
- package/bundled-skills/vercel-optimize/references/data-collection.md +218 -0
- package/bundled-skills/vercel-optimize/references/docs-library.json +683 -0
- package/bundled-skills/vercel-optimize/references/doctrine.md +105 -0
- package/bundled-skills/vercel-optimize/references/observability-plus.md +108 -0
- package/bundled-skills/vercel-optimize/references/playbooks/README.md +53 -0
- package/bundled-skills/vercel-optimize/references/playbooks/ai-application.md +32 -0
- package/bundled-skills/vercel-optimize/references/playbooks/api-service.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/content-site.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/ecommerce.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/marketing.md +30 -0
- package/bundled-skills/vercel-optimize/references/playbooks/saas.md +31 -0
- package/bundled-skills/vercel-optimize/references/playbooks/sveltekit.md +75 -0
- package/bundled-skills/vercel-optimize/references/recommendations.md +203 -0
- package/bundled-skills/vercel-optimize/references/scanner-patterns.md +251 -0
- package/bundled-skills/vercel-optimize/references/scoring.md +205 -0
- package/bundled-skills/vercel-optimize/references/support-topics/README.md +46 -0
- package/bundled-skills/vercel-optimize/references/support-topics/astro-edge-middleware-scope.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/astro-output-mode-and-isr.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/auth-preserving-parallelization.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/bot-protection-product-guardrails.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/build-minutes-monorepo-fanout.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cache-components-static-shell-boundaries.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cache-components-suspense-dedupe-pitfall.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cdn-cache-auth-safety.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/cold-start-initialization-bundle.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/core-web-vitals-client-bottlenecks.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/database-egress-pooling-region.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/dynamic-rendering-traps.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path-platform.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/external-api-critical-path.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/fast-data-transfer-payloads.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/fluid-compute-caveats.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-duration-io-and-after.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-invocation-reduction.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/function-region-misconfiguration-ttfb.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/image-optimization-cost-control.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/isr-revalidation-static-generation.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/middleware-proxy-edge-cost.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-fetch-revalidate-floor.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-font-cls-self-hosting.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-heavy-ui-lazy-load-boundaries.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-image-lcp-preload-sizes.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-route-handler-get-cache-defaults.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/next-script-third-party-strategy.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/nextjs-version-cache-semantics.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/not-found-catchall-request-waste.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/nuxt-route-rules-cache-isr.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/observability-events-cost-attribution.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/post-response-work-waituntil.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/route-error-durable-offload.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/route-error-runtime-limits.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/runtime-cache-reusable-data.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-isr-prerender-safety.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/sveltekit-split-cold-start-tradeoff.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/usage-spike-triage.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/use-cache-date-stamp-isr-write-amplifier.md +23 -0
- package/bundled-skills/vercel-optimize/references/support-topics/use-cache-remote-shared-origin-data.md +22 -0
- package/bundled-skills/vercel-optimize/references/support-topics/workflow-resumable-stream-routes.md +23 -0
- package/bundled-skills/vercel-optimize/references/verification.md +102 -0
- package/bundled-skills/vercel-optimize/references/voice.md +76 -0
- package/bundled-skills/vercel-optimize/scripts/budget-summary.mjs +56 -0
- package/bundled-skills/vercel-optimize/scripts/build-docs.mjs +74 -0
- package/bundled-skills/vercel-optimize/scripts/check-citations.mjs +81 -0
- package/bundled-skills/vercel-optimize/scripts/check-docs-fresh.mjs +93 -0
- package/bundled-skills/vercel-optimize/scripts/collect-signals.mjs +576 -0
- package/bundled-skills/vercel-optimize/scripts/collect-sub-agent-outputs.mjs +296 -0
- package/bundled-skills/vercel-optimize/scripts/deep-dive.mjs +319 -0
- package/bundled-skills/vercel-optimize/scripts/gate-investigations.mjs +166 -0
- package/bundled-skills/vercel-optimize/scripts/merge-signals.mjs +192 -0
- package/bundled-skills/vercel-optimize/scripts/prepare-investigation-brief.mjs +231 -0
- package/bundled-skills/vercel-optimize/scripts/reconcile-candidates.mjs +62 -0
- package/bundled-skills/vercel-optimize/scripts/render-report.mjs +437 -0
- package/bundled-skills/vercel-optimize/scripts/scan-codebase.mjs +313 -0
- package/bundled-skills/vercel-optimize/scripts/verify-and-regen.mjs +346 -0
- package/bundled-skills/vercel-optimize/scripts/verify-finding.mjs +19 -0
- package/bundled-skills/vercel-react-view-transitions/SKILL.md +327 -0
- package/bundled-skills/vercel-react-view-transitions/references/css-recipes.md +242 -0
- package/bundled-skills/vercel-react-view-transitions/references/implementation.md +182 -0
- package/bundled-skills/vercel-react-view-transitions/references/nextjs.md +176 -0
- package/bundled-skills/vercel-react-view-transitions/references/patterns.md +262 -0
- package/package.json +1 -1
- package/skills_index.json +312 -0
|
@@ -0,0 +1,683 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "Curated documentation allow-list for the vercel-optimize skill. Entries are version-aware via applicableFrameworks (semver). The recommender prompt receives only the subset valid for the user's stack. Citations outside this allow-list are stripped by the unknown-citation sanitizer.",
|
|
3
|
+
"version": "1.1.1",
|
|
4
|
+
"lastVerified": "2026-05-26",
|
|
5
|
+
"schemaVersion": "1.0",
|
|
6
|
+
"applicableFrameworksSyntax": "Semver-style. '*' = any framework. 'next@*' = any Next.js. 'next@14' = Next 14.x. 'next@>=15.0.0' = Next 15+. Multiple via '||': 'next@14 || next@>=15.0.0'.",
|
|
7
|
+
"urls": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://vercel.com/docs/caching/cdn-cache",
|
|
10
|
+
"topic": "Vercel CDN Cache — cacheable response criteria, static file caching, dynamic response caching, and cache limits",
|
|
11
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
12
|
+
"applicableFrameworks": ["*"]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"url": "https://vercel.com/docs/headers/request-headers",
|
|
16
|
+
"topic": "Vercel request headers — documented geolocation header names including country, country-region, city, latitude, longitude, timezone, and postal code",
|
|
17
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
18
|
+
"applicableFrameworks": ["*"]
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"url": "https://vercel.com/docs/caching/cache-control-headers",
|
|
22
|
+
"topic": "Cache-Control headers on Vercel — s-maxage, CDN-Cache-Control, Vercel-CDN-Cache-Control, stale-while-revalidate",
|
|
23
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
24
|
+
"applicableFrameworks": ["*"]
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"url": "https://vercel.com/docs/caching/runtime-cache",
|
|
28
|
+
"topic": "Runtime Cache — reuse repeated API, database, and expensive computation results from Vercel Functions",
|
|
29
|
+
"appliesTo": ["slow_route", "external_api_slow"],
|
|
30
|
+
"applicableFrameworks": ["*"]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"url": "https://vercel.com/docs/fluid-compute",
|
|
34
|
+
"topic": "Fluid Compute — reduced cold starts, active CPU pricing, function instance reuse, memory right-sizing",
|
|
35
|
+
"appliesTo": ["cold_start", "platform_fluid_compute", "slow_route", "oversized_memory"],
|
|
36
|
+
"applicableFrameworks": ["*"]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"url": "https://vercel.com/docs/functions/configuring-functions/memory",
|
|
40
|
+
"topic": "Function memory configuration — Standard 2GB / Performance 4GB tiers, when to upgrade Performance, account-level setting",
|
|
41
|
+
"appliesTo": ["platform_fluid_compute"],
|
|
42
|
+
"applicableFrameworks": ["*"]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"url": "https://vercel.com/docs/speed-insights",
|
|
46
|
+
"topic": "Vercel Speed Insights — LCP, INP, CLS, TTFB, FCP, FID on real-user traffic",
|
|
47
|
+
"appliesTo": ["cwv_poor"],
|
|
48
|
+
"applicableFrameworks": ["*"]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"url": "https://web.dev/articles/vitals",
|
|
52
|
+
"topic": "Core Web Vitals — LCP < 2500ms, INP < 200ms, CLS < 0.1 thresholds",
|
|
53
|
+
"appliesTo": ["cwv_poor"],
|
|
54
|
+
"applicableFrameworks": ["*"]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"url": "https://web.dev/articles/optimize-lcp",
|
|
58
|
+
"topic": "Optimize LCP — preload critical images, defer non-critical CSS, reduce server response",
|
|
59
|
+
"appliesTo": ["cwv_poor"],
|
|
60
|
+
"applicableFrameworks": ["*"]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"url": "https://web.dev/articles/optimize-inp",
|
|
64
|
+
"topic": "Optimize INP — break up long tasks, defer non-essential JavaScript",
|
|
65
|
+
"appliesTo": ["cwv_poor"],
|
|
66
|
+
"applicableFrameworks": ["*"]
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"url": "https://web.dev/articles/optimize-cls",
|
|
70
|
+
"topic": "Optimize CLS — reserve space for images, fonts, ads; avoid layout-affecting injections",
|
|
71
|
+
"appliesTo": ["cwv_poor"],
|
|
72
|
+
"applicableFrameworks": ["*"]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"url": "https://vercel.com/docs/vercel-firewall/vercel-waf/managed-rulesets",
|
|
76
|
+
"topic": "Vercel WAF managed rulesets — managed bot and AI-bot actions by ruleset",
|
|
77
|
+
"appliesTo": ["platform_bot_protection", "uncached_route"],
|
|
78
|
+
"applicableFrameworks": ["*"]
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"url": "https://vercel.com/docs/vercel-firewall/vercel-waf/custom-rules",
|
|
82
|
+
"topic": "Vercel WAF custom rules — log, deny, challenge, bypass, redirect, and persistent actions",
|
|
83
|
+
"appliesTo": ["platform_bot_protection", "uncached_route", "middleware_heavy"],
|
|
84
|
+
"applicableFrameworks": ["*"]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"url": "https://vercel.com/docs/functions",
|
|
88
|
+
"topic": "Vercel Functions lifecycle — regions, memory, max duration, runtimes",
|
|
89
|
+
"appliesTo": ["slow_route", "cold_start", "route_errors"],
|
|
90
|
+
"applicableFrameworks": ["*"]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"url": "https://vercel.com/docs/functions/debug-slow-functions",
|
|
94
|
+
"topic": "Debugging slow functions — isolate external latency, cold starts, bundle size, initialization, memory, and connection pooling",
|
|
95
|
+
"appliesTo": ["slow_route", "cold_start", "external_api_slow"],
|
|
96
|
+
"applicableFrameworks": ["*"]
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"url": "https://vercel.com/docs/functions/functions-api-reference/vercel-functions-package",
|
|
100
|
+
"topic": "@vercel/functions helpers — waitUntil for post-response work and attachDatabasePool for pool lifecycle",
|
|
101
|
+
"appliesTo": ["slow_route", "cold_start", "external_api_slow", "route_errors"],
|
|
102
|
+
"applicableFrameworks": ["*"]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"url": "https://vercel.com/docs/functions/limitations",
|
|
106
|
+
"topic": "Vercel Functions limits — duration, payload, runtime, and invocation constraints",
|
|
107
|
+
"appliesTo": ["cold_start", "route_errors", "slow_route"],
|
|
108
|
+
"applicableFrameworks": ["*"]
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"url": "https://vercel.com/docs/functions/runtimes",
|
|
112
|
+
"topic": "Runtime selection — node, python, ruby, go (edge runtime deprecated per 2026 platform notes)",
|
|
113
|
+
"appliesTo": ["cold_start", "slow_route"],
|
|
114
|
+
"applicableFrameworks": ["*"]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"url": "https://vercel.com/docs/incremental-static-regeneration",
|
|
118
|
+
"topic": "Incremental Static Regeneration — reads vs writes, revalidate timing, on-demand revalidation",
|
|
119
|
+
"appliesTo": ["isr_overrevalidation", "uncached_route"],
|
|
120
|
+
"applicableFrameworks": ["next@*", "sveltekit@*", "astro@*", "nuxt@*"]
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"url": "https://vercel.com/docs/image-optimization",
|
|
124
|
+
"topic": "Image Optimization on Vercel — supported formats, transformations, billing",
|
|
125
|
+
"appliesTo": ["image_optimization"],
|
|
126
|
+
"applicableFrameworks": ["*"]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"url": "https://vercel.com/docs/image-optimization/managing-image-optimization-costs",
|
|
130
|
+
"topic": "Managing Image Optimization usage and costs — reduce unnecessary transformations and cache misses",
|
|
131
|
+
"appliesTo": ["image_optimization"],
|
|
132
|
+
"applicableFrameworks": ["*"]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"url": "https://vercel.com/docs/image-optimization/limits-and-pricing",
|
|
136
|
+
"topic": "Image Optimization limits and pricing — source format, dimensions, transformed image size, and billing dimensions",
|
|
137
|
+
"appliesTo": ["image_optimization"],
|
|
138
|
+
"applicableFrameworks": ["*"]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"url": "https://vercel.com/docs/observability/observability-plus",
|
|
142
|
+
"topic": "Observability Plus — path-level metrics, p75 sort, and retention",
|
|
143
|
+
"appliesTo": ["platform_fluid_compute", "observability_events_attribution"],
|
|
144
|
+
"applicableFrameworks": ["*"]
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"url": "https://vercel.com/docs/monorepos",
|
|
148
|
+
"topic": "Monorepos — skip unaffected projects and ignored build step tradeoffs",
|
|
149
|
+
"appliesTo": ["build_minutes_fanout"],
|
|
150
|
+
"applicableFrameworks": ["*"]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"url": "https://vercel.com/docs/builds",
|
|
154
|
+
"topic": "Builds — build infrastructure, monorepo build controls, concurrency, and queues",
|
|
155
|
+
"appliesTo": ["build_minutes_fanout"],
|
|
156
|
+
"applicableFrameworks": ["*"]
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"url": "https://turborepo.dev/docs/crafting-your-repository/caching",
|
|
160
|
+
"topic": "Turborepo caching — task-level cache config, force flags, remote cache",
|
|
161
|
+
"appliesTo": ["build_minutes_fanout"],
|
|
162
|
+
"applicableFrameworks": ["*"]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"url": "https://vercel.com/docs/regions",
|
|
166
|
+
"topic": "Vercel Functions regions — single vs multi-region, defaults, latency tradeoffs",
|
|
167
|
+
"appliesTo": ["region_misconfig"],
|
|
168
|
+
"applicableFrameworks": ["*"]
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
"url": "https://vercel.com/docs/functions/configuring-functions/region",
|
|
172
|
+
"topic": "Configuring function region — vercel.json regions, segment-level preferredRegion",
|
|
173
|
+
"appliesTo": ["region_misconfig"],
|
|
174
|
+
"applicableFrameworks": ["*"]
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"url": "https://vercel.com/docs/alerts",
|
|
178
|
+
"topic": "Alerts — per-metric alerting on routes/status/usage with supported destinations",
|
|
179
|
+
"appliesTo": ["observability_events_attribution", "usage_spike_triage"],
|
|
180
|
+
"applicableFrameworks": ["*"]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"url": "https://vercel.com/docs/spend-management",
|
|
184
|
+
"topic": "Spend Management — usage thresholds, notifications, and project pause behavior",
|
|
185
|
+
"appliesTo": ["usage_spike_triage"],
|
|
186
|
+
"applicableFrameworks": ["*"]
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"url": "https://vercel.com/docs/cli/metrics",
|
|
190
|
+
"topic": "vercel metrics CLI — schema, query construction, OData filters",
|
|
191
|
+
"appliesTo": [],
|
|
192
|
+
"applicableFrameworks": ["*"]
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"url": "https://vercel.com/docs/cli/usage",
|
|
196
|
+
"topic": "vercel usage CLI — billing line items, breakdown, effectiveCost vs billedCost",
|
|
197
|
+
"appliesTo": [],
|
|
198
|
+
"applicableFrameworks": ["*"]
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"url": "https://vercel.com/docs/cli/inspect",
|
|
202
|
+
"topic": "vercel inspect — view a deployment's build logs, region, runtime, commit, creator",
|
|
203
|
+
"appliesTo": ["route_errors"],
|
|
204
|
+
"applicableFrameworks": ["*"]
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"url": "https://vercel.com/docs/manage-cdn-usage",
|
|
208
|
+
"topic": "Vercel Edge Network bandwidth — Fast Data Transfer, included quotas, overage pricing",
|
|
209
|
+
"appliesTo": ["large_static_asset", "uncached_route"],
|
|
210
|
+
"applicableFrameworks": ["*"]
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"url": "https://vercel.com/docs/functions/runtimes/edge-runtime",
|
|
214
|
+
"topic": "Vercel Edge Runtime — supported APIs, constraints, incompatible modules (node:* builtins, native deps)",
|
|
215
|
+
"appliesTo": ["edge_heavy_import", "cold_start"],
|
|
216
|
+
"applicableFrameworks": ["*"]
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"url": "https://vercel.com/docs/bot-management",
|
|
220
|
+
"topic": "Vercel Bot Protection — enabling, false-positive handling, billing implications",
|
|
221
|
+
"appliesTo": ["platform_bot_protection"],
|
|
222
|
+
"applicableFrameworks": ["*"]
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"url": "https://vercel.com/docs/botid",
|
|
226
|
+
"topic": "BotID — invisible challenge, Basic and Deep Analysis modes, checkBotId, observability, and billing",
|
|
227
|
+
"appliesTo": ["platform_bot_protection"],
|
|
228
|
+
"applicableFrameworks": ["*"]
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"url": "https://vercel.com/docs/functions/limitations",
|
|
232
|
+
"topic": "Platform limits — function payload size, max duration, regional caps",
|
|
233
|
+
"appliesTo": ["route_errors", "slow_route"],
|
|
234
|
+
"applicableFrameworks": ["*"]
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"url": "https://vercel.com/docs/project-configuration",
|
|
238
|
+
"topic": "vercel.json configuration — functions, crons, rewrites, redirects, headers, regions",
|
|
239
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
240
|
+
"applicableFrameworks": ["*"]
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"url": "https://vercel.com/docs/routing/",
|
|
244
|
+
"topic": "Vercel routing — firewall, bulk redirects, project routes, deployment routes, middleware, and filesystem order",
|
|
245
|
+
"appliesTo": ["uncached_route", "middleware_heavy", "cache_header_gap"],
|
|
246
|
+
"applicableFrameworks": ["*"]
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"url": "https://vercel.com/docs/redirects/bulk-redirects/",
|
|
250
|
+
"topic": "Bulk Redirects — framework-agnostic large redirect tables processed before project routes",
|
|
251
|
+
"appliesTo": ["uncached_route"],
|
|
252
|
+
"applicableFrameworks": ["*"]
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"url": "https://vercel.com/docs/routing-middleware",
|
|
256
|
+
"topic": "Vercel Routing Middleware — intercept requests before rendering and keep matcher scope intentional",
|
|
257
|
+
"appliesTo": ["middleware_heavy"],
|
|
258
|
+
"applicableFrameworks": ["*"]
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"url": "https://vercel.com/docs/workflow",
|
|
262
|
+
"topic": "Vercel Workflow — beta durable workflows, observability, Workflow Steps/Storage pricing, and compute billing caveats",
|
|
263
|
+
"appliesTo": ["route_errors", "slow_route"],
|
|
264
|
+
"applicableFrameworks": ["*"]
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
"url": "https://workflow-sdk.dev/docs/foundations/starting-workflows",
|
|
268
|
+
"topic": "Workflow SDK starting workflows — start() returns after enqueueing, returnValue waits for completion, streams/status can be read later",
|
|
269
|
+
"appliesTo": ["route_errors", "slow_route"],
|
|
270
|
+
"applicableFrameworks": ["*"]
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"url": "https://workflow-sdk.dev/docs/foundations/workflows-and-steps",
|
|
274
|
+
"topic": "Workflow SDK workflows and steps — workflow orchestration, step execution, persisted results, retries, sleep, and suspension",
|
|
275
|
+
"appliesTo": ["route_errors", "slow_route"],
|
|
276
|
+
"applicableFrameworks": ["*"]
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"url": "https://workflow-sdk.dev/docs/foundations/streaming",
|
|
280
|
+
"topic": "Workflow SDK streaming — durable streams, getReadable startIndex, getWritable, lock release, stream close, and retry caveats",
|
|
281
|
+
"appliesTo": ["slow_route"],
|
|
282
|
+
"applicableFrameworks": ["*"]
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"url": "https://workflow-sdk.dev/docs/ai/resumable-streams",
|
|
286
|
+
"topic": "Workflow SDK resumable streams — reconnecting AI chat streams with run IDs, stream startIndex, and tail-index headers",
|
|
287
|
+
"appliesTo": ["slow_route"],
|
|
288
|
+
"applicableFrameworks": ["*"]
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
"url": "https://vercel.com/docs/queues",
|
|
292
|
+
"topic": "Vercel Queues — asynchronous task queues for background work decoupled from the request path",
|
|
293
|
+
"appliesTo": ["route_errors"],
|
|
294
|
+
"applicableFrameworks": ["*"]
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"url": "https://vercel.com/docs/concepts/edge-network/regions",
|
|
298
|
+
"topic": "Vercel function regions — single-region default, multi-region, db proximity",
|
|
299
|
+
"appliesTo": ["slow_route"],
|
|
300
|
+
"applicableFrameworks": ["*"]
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"url": "https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config",
|
|
304
|
+
"topic": "App Router route segment config — dynamic, revalidate, runtime, fetchCache, dynamicParams",
|
|
305
|
+
"appliesTo": ["uncached_route", "rendering_candidate", "force-dynamic"],
|
|
306
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"url": "https://nextjs.org/docs/app/api-reference/file-conventions/route",
|
|
310
|
+
"topic": "Route Handlers — GET handler caching defaults, route segment config, and request handling",
|
|
311
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
312
|
+
"applicableFrameworks": ["next@>=13.2.0"]
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/image-response",
|
|
316
|
+
"topic": "ImageResponse — dynamic OG image response options including status and headers",
|
|
317
|
+
"appliesTo": ["uncached_route", "cache_header_gap"],
|
|
318
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/generate-static-params",
|
|
322
|
+
"topic": "generateStaticParams — pre-render dynamic routes at build time",
|
|
323
|
+
"appliesTo": ["uncached_route", "rendering_candidate"],
|
|
324
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/fetch",
|
|
328
|
+
"topic": "Next.js fetch — server-side cache and next.revalidate semantics for App Router data requests",
|
|
329
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "cache_header_gap"],
|
|
330
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/unstable_cache",
|
|
334
|
+
"topic": "unstable_cache — Next.js 14/15 cache primitive (replaced in 16 by 'use cache')",
|
|
335
|
+
"appliesTo": ["uncached_route", "function-duration"],
|
|
336
|
+
"applicableFrameworks": ["next@14 || next@15"]
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
"url": "https://nextjs.org/docs/app/api-reference/directives/use-cache",
|
|
340
|
+
"topic": "'use cache' directive — opt-in persistent cache (15+)",
|
|
341
|
+
"appliesTo": ["uncached_route", "function-duration"],
|
|
342
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"url": "https://nextjs.org/docs/app/api-reference/directives/use-cache-remote",
|
|
346
|
+
"topic": "'use cache: remote' directive — remote cache storage for shared cached data with Cache Components",
|
|
347
|
+
"appliesTo": ["external_api_slow"],
|
|
348
|
+
"applicableFrameworks": ["next@>=16.0.0"]
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/cacheLife",
|
|
352
|
+
"topic": "cacheLife() — TTL annotation for 'use cache' segments",
|
|
353
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation"],
|
|
354
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/cacheTag",
|
|
358
|
+
"topic": "cacheTag() — tag-based invalidation for 'use cache'",
|
|
359
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation"],
|
|
360
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/revalidateTag",
|
|
364
|
+
"topic": "revalidateTag — on-demand invalidation by tag",
|
|
365
|
+
"appliesTo": ["isr_overrevalidation"],
|
|
366
|
+
"applicableFrameworks": ["next@>=13.4.0"]
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/revalidatePath",
|
|
370
|
+
"topic": "revalidatePath — on-demand invalidation by route",
|
|
371
|
+
"appliesTo": ["isr_overrevalidation"],
|
|
372
|
+
"applicableFrameworks": ["next@>=13.4.0"]
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"url": "https://nextjs.org/docs/app/api-reference/functions/after",
|
|
376
|
+
"topic": "after() — non-blocking work post-response (15+)",
|
|
377
|
+
"appliesTo": ["function-duration", "slow_route"],
|
|
378
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"url": "https://react.dev/reference/react/cache",
|
|
382
|
+
"topic": "React cache() — per-request memoization in Server Components",
|
|
383
|
+
"appliesTo": ["function-duration", "slow_route"],
|
|
384
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"url": "https://nextjs.org/docs/app/api-reference/components/image",
|
|
388
|
+
"topic": "next/image component — formats, sizes, priority, lazy loading",
|
|
389
|
+
"appliesTo": ["image_optimization", "cwv_poor"],
|
|
390
|
+
"applicableFrameworks": ["next@*"]
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
"url": "https://nextjs.org/docs/app/api-reference/components/font",
|
|
394
|
+
"topic": "next/font — self-hosted fonts, no CLS, build-time optimization",
|
|
395
|
+
"appliesTo": ["bundle_candidate", "cwv_poor"],
|
|
396
|
+
"applicableFrameworks": ["next@>=13.2.0"]
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"url": "https://nextjs.org/docs/app/api-reference/components/script",
|
|
400
|
+
"topic": "next/script component — loading strategies for third-party scripts and App Router worker caveats",
|
|
401
|
+
"appliesTo": ["cwv_poor"],
|
|
402
|
+
"applicableFrameworks": ["next@*"]
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"url": "https://nextjs.org/docs/app/guides/lazy-loading",
|
|
406
|
+
"topic": "next/dynamic — lazy-load heavy client components, SSR opt-out",
|
|
407
|
+
"appliesTo": ["bundle_candidate", "slow_route", "cwv_poor"],
|
|
408
|
+
"applicableFrameworks": ["next@*"]
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"url": "https://nextjs.org/docs/app/building-your-application/caching",
|
|
412
|
+
"topic": "Next.js App Router caching model — full-route cache, data cache, request memoization",
|
|
413
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "function-duration"],
|
|
414
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"url": "https://nextjs.org/docs/app/api-reference/config/next-config-js/cacheComponents",
|
|
418
|
+
"topic": "cacheComponents flag — explicit caching model for App Router prerendering and data access",
|
|
419
|
+
"appliesTo": ["rendering_candidate", "uncached_route"],
|
|
420
|
+
"applicableFrameworks": ["next@>=16.0.0"]
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"url": "https://nextjs.org/docs/app/getting-started/caching",
|
|
424
|
+
"topic": "Cache Components caching guide — static shell, cached dynamic content, runtime dynamic content",
|
|
425
|
+
"appliesTo": ["rendering_candidate", "uncached_route"],
|
|
426
|
+
"applicableFrameworks": ["next@>=16.0.0"]
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"url": "https://nextjs.org/docs/app/guides/migrating-to-cache-components",
|
|
430
|
+
"topic": "Migrating to Cache Components — route segment config replacements and static shell migration",
|
|
431
|
+
"appliesTo": ["rendering_candidate", "uncached_route"],
|
|
432
|
+
"applicableFrameworks": ["next@>=16.0.0"]
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"url": "https://nextjs.org/docs/app/building-your-application/routing/middleware",
|
|
436
|
+
"topic": "Next.js middleware — matcher config, runtime, request modification",
|
|
437
|
+
"appliesTo": ["middleware-broad-matcher", "platform_bot_protection", "middleware_heavy"],
|
|
438
|
+
"applicableFrameworks": ["next@>=12.0.0"]
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"url": "https://nextjs.org/docs/app/building-your-application/rendering/partial-prerendering",
|
|
442
|
+
"topic": "Partial Prerendering (PPR) — combine static shell + dynamic streaming (15+ experimental, stable later)",
|
|
443
|
+
"appliesTo": ["rendering_candidate", "slow_route"],
|
|
444
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
"url": "https://nextjs.org/docs/app/building-your-application/optimizing/bundle-analyzer",
|
|
448
|
+
"topic": "@next/bundle-analyzer — diagnose oversized client bundles",
|
|
449
|
+
"appliesTo": ["bundle_candidate"],
|
|
450
|
+
"applicableFrameworks": ["next@*"]
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"url": "https://vercel.com/docs/frameworks/full-stack/sveltekit",
|
|
454
|
+
"topic": "SvelteKit on Vercel — adapter config, ISR, split function bundling, regions, and runtime settings",
|
|
455
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "cold_start", "slow_route"],
|
|
456
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
"url": "https://svelte.dev/docs/kit/adapter-vercel",
|
|
460
|
+
"topic": "SvelteKit adapter-vercel — ISR, split, regions, max duration, and image config",
|
|
461
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "cold_start", "slow_route"],
|
|
462
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
463
|
+
},
|
|
464
|
+
{
|
|
465
|
+
"url": "https://svelte.dev/docs/kit/page-options",
|
|
466
|
+
"topic": "SvelteKit page options — prerender, SSR, CSR, and server route prerendering",
|
|
467
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate"],
|
|
468
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
469
|
+
},
|
|
470
|
+
{
|
|
471
|
+
"url": "https://kit.svelte.dev/docs/adapter-vercel",
|
|
472
|
+
"topic": "SvelteKit Vercel adapter — runtime, isr, split, regions, maxDuration config",
|
|
473
|
+
"appliesTo": ["slow_route", "cold_start", "uncached_route"],
|
|
474
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"url": "https://kit.svelte.dev/docs/page-options",
|
|
478
|
+
"topic": "SvelteKit page options — prerender, ssr, csr",
|
|
479
|
+
"appliesTo": ["rendering_candidate", "uncached_route"],
|
|
480
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
"url": "https://kit.svelte.dev/docs/load",
|
|
484
|
+
"topic": "SvelteKit load functions — server-side data loading patterns, parallel loads",
|
|
485
|
+
"appliesTo": ["slow_route", "function-duration"],
|
|
486
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
487
|
+
},
|
|
488
|
+
{
|
|
489
|
+
"url": "https://kit.svelte.dev/docs/routing",
|
|
490
|
+
"topic": "SvelteKit routing — +page.svelte, +page.server.ts, +server.ts route handlers, +layout.svelte",
|
|
491
|
+
"appliesTo": ["slow_route", "uncached_route", "rendering_candidate"],
|
|
492
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
"url": "https://kit.svelte.dev/docs/hooks",
|
|
496
|
+
"topic": "SvelteKit hooks — handle (request middleware), handleFetch (per-fetch interception), handleError",
|
|
497
|
+
"appliesTo": ["middleware_heavy", "uncached_route", "route_errors"],
|
|
498
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"url": "https://kit.svelte.dev/docs/form-actions",
|
|
502
|
+
"topic": "SvelteKit form actions — server-side form handling without separate API endpoints",
|
|
503
|
+
"appliesTo": ["slow_route", "uncached_route"],
|
|
504
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
"url": "https://kit.svelte.dev/docs/state-management",
|
|
508
|
+
"topic": "SvelteKit state management — request-scoped state, locals, avoiding cross-request leakage",
|
|
509
|
+
"appliesTo": ["slow_route", "route_errors"],
|
|
510
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"url": "https://kit.svelte.dev/docs/cli",
|
|
514
|
+
"topic": "SvelteKit CLI — build, preview, sync. Use `vite build` for production output that adapter-vercel consumes.",
|
|
515
|
+
"appliesTo": [],
|
|
516
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"url": "https://kit.svelte.dev/docs/migrating",
|
|
520
|
+
"topic": "SvelteKit migration guides — for users on older majors who may not have ISR / per-route prerender",
|
|
521
|
+
"appliesTo": [],
|
|
522
|
+
"applicableFrameworks": ["sveltekit@*"]
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"url": "https://docs.astro.build/en/guides/integrations-guide/vercel/",
|
|
526
|
+
"topic": "Astro Vercel adapter — ISR, image services, edge middleware, runtime config",
|
|
527
|
+
"appliesTo": ["slow_route", "cold_start", "uncached_route", "isr_overrevalidation", "rendering_candidate", "middleware_heavy"],
|
|
528
|
+
"applicableFrameworks": ["astro@*"]
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"url": "https://vercel.com/docs/frameworks/frontend/astro",
|
|
532
|
+
"topic": "Astro on Vercel — output modes, ISR, edge middleware, and image optimization",
|
|
533
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate", "middleware_heavy", "image_optimization"],
|
|
534
|
+
"applicableFrameworks": ["astro@*"]
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
"url": "https://docs.astro.build/en/guides/on-demand-rendering/",
|
|
538
|
+
"topic": "Astro on-demand rendering — output server mode and per-route prerender controls",
|
|
539
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate"],
|
|
540
|
+
"applicableFrameworks": ["astro@*"]
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"url": "https://docs.astro.build/en/reference/configuration-reference/",
|
|
544
|
+
"topic": "Astro configuration — output mode (static/server/hybrid), prerender, integrations",
|
|
545
|
+
"appliesTo": ["rendering_candidate", "uncached_route"],
|
|
546
|
+
"applicableFrameworks": ["astro@*"]
|
|
547
|
+
},
|
|
548
|
+
{
|
|
549
|
+
"url": "https://docs.astro.build/en/guides/server-side-rendering/",
|
|
550
|
+
"topic": "Astro SSR — hybrid mode, prerender export, dynamic routes",
|
|
551
|
+
"appliesTo": ["slow_route", "uncached_route", "rendering_candidate"],
|
|
552
|
+
"applicableFrameworks": ["astro@*"]
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
"url": "https://nuxt.com/docs/getting-started/deployment#vercel",
|
|
556
|
+
"topic": "Nuxt on Vercel — deployment, runtime configuration, ISR support",
|
|
557
|
+
"appliesTo": ["slow_route", "cold_start", "uncached_route"],
|
|
558
|
+
"applicableFrameworks": ["nuxt@*"]
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"url": "https://vercel.com/docs/frameworks/full-stack/nuxt",
|
|
562
|
+
"topic": "Nuxt on Vercel — routeRules ISR, Vercel cache integration, deployment, and runtime configuration",
|
|
563
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "slow_route", "cold_start"],
|
|
564
|
+
"applicableFrameworks": ["nuxt@>=3.0.0"]
|
|
565
|
+
},
|
|
566
|
+
{
|
|
567
|
+
"url": "https://nuxt.com/docs/api/composables/use-fetch",
|
|
568
|
+
"topic": "Nuxt useFetch / useAsyncData — automatic deduplication, parallel data loads, cache options",
|
|
569
|
+
"appliesTo": ["slow_route", "function-duration"],
|
|
570
|
+
"applicableFrameworks": ["nuxt@*"]
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"url": "https://nuxt.com/docs/4.x/api/utils/define-route-rules",
|
|
574
|
+
"topic": "Nuxt defineRouteRules — per-route prerender, ISR, SWR, headers, and rendering controls",
|
|
575
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate"],
|
|
576
|
+
"applicableFrameworks": ["nuxt@>=3.0.0"]
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"url": "https://nuxt.com/docs/4.x/guide/concepts/rendering",
|
|
580
|
+
"topic": "Nuxt rendering modes — universal rendering, routeRules, prerendering, and hybrid rendering",
|
|
581
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate"],
|
|
582
|
+
"applicableFrameworks": ["nuxt@>=3.0.0"]
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"url": "https://nuxt.com/docs/api/utils/define-route-rules",
|
|
586
|
+
"topic": "Nuxt route rules — per-route SSR/SSG/ISR/swr/cache config in nuxt.config.ts",
|
|
587
|
+
"appliesTo": ["uncached_route", "isr_overrevalidation", "rendering_candidate"],
|
|
588
|
+
"applicableFrameworks": ["nuxt@*"]
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
"url": "https://docs.astro.build/en/guides/integrations-guide/vercel/",
|
|
592
|
+
"topic": "Astro Vercel adapter — SSR, ISR, image optimization on Vercel",
|
|
593
|
+
"appliesTo": ["slow_route", "image_optimization"],
|
|
594
|
+
"applicableFrameworks": ["astro@*"]
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"url": "https://nuxt.com/docs/getting-started/deployment#vercel",
|
|
598
|
+
"topic": "Nuxt on Vercel — Nitro preset, ISR, caching headers",
|
|
599
|
+
"appliesTo": ["uncached_route", "rendering_candidate"],
|
|
600
|
+
"applicableFrameworks": ["nuxt@*"]
|
|
601
|
+
}
|
|
602
|
+
],
|
|
603
|
+
"ruleSkillRefs": [
|
|
604
|
+
{
|
|
605
|
+
"skill": "vercel-react-best-practices",
|
|
606
|
+
"rule": "async-parallel",
|
|
607
|
+
"topic": "Promise.all for independent awaits",
|
|
608
|
+
"applicableFrameworks": ["next@*", "react@*"]
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"skill": "vercel-react-best-practices",
|
|
612
|
+
"rule": "async-suspense-boundaries",
|
|
613
|
+
"topic": "Suspense for streaming content",
|
|
614
|
+
"applicableFrameworks": ["next@>=13.0.0", "react@>=18.0.0"]
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"skill": "vercel-react-best-practices",
|
|
618
|
+
"rule": "bundle-barrel-imports",
|
|
619
|
+
"topic": "Avoid barrel files, prefer direct imports",
|
|
620
|
+
"applicableFrameworks": ["next@*", "react@*"]
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"skill": "vercel-react-best-practices",
|
|
624
|
+
"rule": "bundle-dynamic-imports",
|
|
625
|
+
"topic": "next/dynamic for heavy components",
|
|
626
|
+
"applicableFrameworks": ["next@*"]
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"skill": "vercel-react-best-practices",
|
|
630
|
+
"rule": "bundle-defer-third-party",
|
|
631
|
+
"topic": "Defer analytics/logging scripts post-hydration",
|
|
632
|
+
"applicableFrameworks": ["next@*", "react@*"]
|
|
633
|
+
},
|
|
634
|
+
{
|
|
635
|
+
"skill": "vercel-react-best-practices",
|
|
636
|
+
"rule": "server-cache-react",
|
|
637
|
+
"topic": "React.cache() for request deduplication",
|
|
638
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"skill": "vercel-react-best-practices",
|
|
642
|
+
"rule": "server-cache-lru",
|
|
643
|
+
"topic": "LRU for cross-request caching",
|
|
644
|
+
"applicableFrameworks": ["next@*"]
|
|
645
|
+
},
|
|
646
|
+
{
|
|
647
|
+
"skill": "vercel-react-best-practices",
|
|
648
|
+
"rule": "server-after-nonblocking",
|
|
649
|
+
"topic": "after() for non-blocking work post-response",
|
|
650
|
+
"applicableFrameworks": ["next@>=15.0.0"]
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"skill": "vercel-react-best-practices",
|
|
654
|
+
"rule": "server-parallel-fetching",
|
|
655
|
+
"topic": "Restructure server components for parallel fetches",
|
|
656
|
+
"applicableFrameworks": ["next@>=13.0.0"]
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"skill": "vercel-react-best-practices",
|
|
660
|
+
"rule": "server-hoist-static-io",
|
|
661
|
+
"topic": "Hoist static I/O (fonts, logos) to module level",
|
|
662
|
+
"applicableFrameworks": ["next@*"]
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
"skill": "vercel-react-best-practices",
|
|
666
|
+
"rule": "client-swr-dedup",
|
|
667
|
+
"topic": "SWR for client-side request deduplication",
|
|
668
|
+
"applicableFrameworks": ["next@*", "react@*"]
|
|
669
|
+
},
|
|
670
|
+
{
|
|
671
|
+
"skill": "vercel-react-best-practices",
|
|
672
|
+
"rule": "rendering-content-visibility",
|
|
673
|
+
"topic": "content-visibility for long lists",
|
|
674
|
+
"applicableFrameworks": ["*"]
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"skill": "vercel-react-best-practices",
|
|
678
|
+
"rule": "rendering-resource-hints",
|
|
679
|
+
"topic": "React DOM resource hints for preloading",
|
|
680
|
+
"applicableFrameworks": ["next@*", "react@*"]
|
|
681
|
+
}
|
|
682
|
+
]
|
|
683
|
+
}
|