Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/robotostudio/turbo-start-sanitynpx agentmods add skills/robotostudio/turbo-start-sanity/vercel-optimizeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/robotostudio/turbo-start-sanity/vercel-optimize)<a href="https://agentmods.dev/skills/robotostudio/turbo-start-sanity/vercel-optimize"><img src="https://agentmods.dev/badge/skills/robotostudio/turbo-start-sanity/vercel-optimize/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/robotostudio/turbo-start-sanity/vercel-optimize"><img src="https://agentmods.dev/badge/skills/robotostudio/turbo-start-sanity/vercel-optimize.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00116 | $0.03976 |
| Opus 5 | $0.00058 | $0.01988 |
| Sonnet 5 | $0.00023 | $0.00795 |
| Haiku 4.5 | $0.00012 | $0.00398 |
Grade A, and why
vercel-optimize scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to vercel-optimize — 18 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 323 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Vercel Optimize
Run an observability-first Vercel optimization audit. Do not inspect source files until signals.json exists and a deterministic gate points to a route, file, or project setting.
Core doctrine: read references/doctrine.md if any rule is unclear.
- Metrics first. Recommendations start from Vercel production signals, not repo-wide grep.
- Deterministic gates.
scripts/gate-investigations.mjsdecides what deserves investigation. - Candidate-bound scope. Read only files named by a candidate or a route-local import chain.
- Version-aware citations. Use only
references/docs-library.json; invalid or version-mismatched citations are stripped. - Customer copy. Read references/voice.md before writing report text or chat output.
Prerequisites
- Vercel CLI v53+ with
vercel metrics,vercel usage,vercel contract, andvercel api. - Authenticated CLI session:
vercel login. - Linked app directory:
vercel link.VERCEL_PROJECT_IDcan help resolve project config, butvercel metricsstill requires directory linkage. The link or environment must include the intended project org/team/user scope so the collector can resolve a CLI-safe--scopeand keepvercel metrics,vercel usage, andvercel contracton the same account. - Node.js 20+.
- Observability Plus for route-level metric-backed recommendations.
Never put auth tokens in shell commands. Do not type VERCEL_TOKEN=..., --token ..., or Authorization: Bearer ... into commands that may be echoed in chat.
Framework Support
The preflight reads package.json and sets expectations before metric fan-out.
| Framework | Status | Notes |
|---|---|---|
| Next.js App Router | supported | strongest route mapping, scanners, playbooks, citations |
| Next.js Pages Router | supported | scoped to Pages Router idioms when detected |
| SvelteKit | supported | route mapping for src/routes files and SvelteKit scanner |
| Nuxt | supported | route mapping plus generic/platform checks; fewer framework-specific recs |
| Astro | limited | route mapping plus generic checks; fewer framework-specific recs |
| Hono / Remix / unknown | blocked by default | continue only if the user accepts a limited platform/code-only audit |
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- AGENTS.md 1.9 KB
- CONTRIBUTING.md 3.3 KB
- lib/auth-route.mjs 882 B runs code
- lib/budget-summary.mjs 7.0 KB runs code
- lib/citations.mjs 4.0 KB runs code
- lib/cost-coverage.mjs 8.4 KB runs code
- lib/dedup-recs.mjs 9.9 KB runs code
- lib/deep-dive.mjs 10 KB runs code
- lib/display-labels.mjs 7.4 KB runs code
- lib/extract-claims.mjs 19 KB runs code
- lib/framework-support.mjs 2.1 KB runs code
- lib/gates/build-minutes-fanout.mjs 2.9 KB runs code
- lib/gates/cold-start.mjs 2.7 KB runs code
- lib/gates/contract.mjs 3.1 KB runs code
- lib/gates/cwv-poor.mjs 3.3 KB runs code
- lib/gates/external-api-slow.mjs 2.1 KB runs code
- lib/gates/hard-gates.mjs 2.5 KB runs code
- lib/gates/index.mjs 2.0 KB runs code
- lib/gates/isr-overrevalidation.mjs 2.4 KB runs code
- lib/gates/middleware-heavy.mjs 2.0 KB runs code
- lib/gates/observability-events-attribution.mjs 2.2 KB runs code
- lib/gates/platform-bot-protection.mjs 5.0 KB runs code
- lib/gates/platform-fluid-compute.mjs 3.5 KB runs code
- lib/gates/region-misconfig.mjs 3.0 KB runs code
- lib/gates/route-errors.mjs 3.1 KB runs code
- lib/gates/scanner-driven.mjs 5.1 KB runs code
- lib/gates/select-candidates.mjs 4.6 KB runs code
- lib/gates/slow-route.mjs 4.3 KB runs code
- lib/gates/types.d.ts 928 B runs code
- lib/gates/uncached-route.mjs 3.9 KB runs code
- lib/gates/usage-spike-triage.mjs 5.0 KB runs code
- lib/grade-recommendation.mjs 6.8 KB runs code
- lib/impact-label.mjs 5.2 KB runs code
- lib/impact-magnitude.mjs 2.2 KB runs code
- lib/investigation-brief.mjs 34 KB runs code
- lib/observation-safety.mjs 9.3 KB runs code
- lib/project-facts.mjs 4.3 KB runs code
- lib/queries.mjs 10 KB runs code
- lib/reconcile-candidates.mjs 16 KB runs code
- lib/render-report.mjs 38 KB runs code
- lib/repo-root.mjs 3.1 KB runs code
- lib/route-normalize.mjs 8.4 KB runs code
- lib/sanitizers/bot-protection-certainty.mjs 1.9 KB runs code
- lib/sanitizers/cache-tag-invalidation-certainty.mjs 1.5 KB runs code
- lib/sanitizers/count-correct.mjs 1.9 KB runs code
- lib/sanitizers/function-duration-invocations.mjs 1.4 KB runs code
- lib/sanitizers/index.mjs 3.0 KB runs code
- lib/sanitizers/middleware-conflict.mjs 1.5 KB runs code
- lib/sanitizers/missing-citation.mjs 497 B runs code
- lib/sanitizers/pre-release.mjs 2.2 KB runs code
- lib/sanitizers/rate-limit.mjs 2.6 KB runs code
- lib/sanitizers/rendering-mode-mislabel.mjs 1.7 KB runs code
- lib/sanitizers/undeclared-dep.mjs 2.7 KB runs code
- lib/sanitizers/vercel-directive-strip.mjs 1.4 KB runs code
- lib/sanitizers/window-units.mjs 869 B runs code
- lib/scanners/cache-components-suspense-dedupe.mjs 4.3 KB runs code
- lib/scanners/edge-heavy-import.mjs 3.7 KB runs code
- lib/scanners/force-dynamic.mjs 1.5 KB runs code
- lib/scanners/headers-in-page.mjs 1.5 KB runs code
- lib/scanners/index.mjs 1.4 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 323 lines · 116 tokens per session scan A b285dc1eb295
vercel-optimize is a skill published in the GitHub repository robotostudio/turbo-start-sanity (176 stars, last pushed today), licensed MIT. It adds 116 tokens to every session and 3,976 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to vercel-optimize, differing in 18 lines, and is treated as a copy.
Other skills, from other repositories
adapter-aws-lambda
Deploy tRPC on AWS Lambda with awsLambdaRequestHandler() from @trpc/server/adapters/aws-lambda for API Gateway v1 (REST, APIGatewayProxyEvent) and v2 (HTTP, APIGatewayProxyEventV2), and Lambda Function URLs. Enable response streaming with awsLambdaStreamingRequestHandler() wrapped in awslambda.streamifyResponse().…
adapter-fetch
Deploy tRPC on WinterCG-compliant edge runtimes with fetchRequestHandler() from @trpc/server/adapters/fetch. Supports Cloudflare Workers, Deno Deploy, Vercel Edge Runtime, Astro, Remix, SolidStart. FetchCreateContextFnOptions provides req (Request) and resHeaders (Headers) for context creation. The endpoint option…
trigger-cost-savings
Analyze Trigger.dev tasks, schedules, and runs for cost optimization opportunities. Use when asked to reduce spend, optimize costs, audit usage, right-size machines, or review task efficiency. Combines static source analysis with live run analysis via the Trigger.dev MCP tools (listruns, getrundetails…
portaljs-deploy
Deploy a PortalJS portal to PortalJS Arc — Datopian-managed static hosting on Cloudflare. Builds a static export, uploads it, and returns a live SLUG.arc.portaljs.com URL. One command, one target. Use when a portal is ready to publish or redeploy to a live URL.
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit calls, or resolve the link-prefetch-partial and instant-shell-url-data…
sanity-live-cache-components
Integrates Sanity Live with Next.js Cache Components in next-sanity v13+ apps. Sets up sanityFetch, a shared cachedSanity 'use cache' boundary, , Visual Editing, Presentation Tool, draft mode handling, and the three-layer (Page/Dynamic/Cached) component pattern with explicit perspective/stega prop-drilling. Sequences…