From 7ef27654426789c849f97708322cff2af33e64f8 Mon Sep 17 00:00:00 2001 From: Yogesh Rao Date: Wed, 13 May 2026 21:43:20 +0530 Subject: [PATCH] =?UTF-8?q?feat:=20improve=20ai-sdk=20skill=20score=20(89%?= =?UTF-8?q?=20=E2=86=92=2095%)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hey @johnlindquist 👋 I ran your skills through `tessl skill review` at work and found some targeted improvements for the `ai-sdk` skill. Here's the full before/after: | Skill | Before | After | Change | |-------|--------|-------|--------| | ai-sdk | 89% | 95% | +6% |
Changes made - **Tightened description for distinctiveness**: Added "with the AI SDK" and "through AI SDK provider packages" anchors so generic trigger terms (streaming, embeddings, etc.) are scoped to the SDK context and less likely to collide with other skills - **Quoted the description string**: Switched to standard YAML quoted format - **Consolidated the verification section**: Renamed "Critical: Do Not Trust Internal Knowledge" → "Always Verify Against Source" — same safety message, fewer tokens. Reduced 9 numbered steps to 6 by merging related points and removing duplication - **Removed inline curl command**: The long `curl | jq` command for fetching model IDs was already documented in `references/ai-gateway.md` — pointing there instead of duplicating it saves ~50 tokens per injection - **Merged prerequisites paragraph**: Combined the two-paragraph prerequisites into one sentence without losing any guidance
I also stress-tested your `ai-sdk` skill against a few real-world task evals and it held up really well on v5-to-v6 migration scenarios with `useChat` transport rewiring and `generateObject` → `Output.object()` conversion. Kudos for that. Honest disclosure — I work at @tesslio where we build tooling around skills like these. Not a pitch — just saw room for improvement and wanted to contribute. Want to self-improve your skills? Just point your agent (Claude Code, Codex, etc.) at [this Tessl guide](https://docs.tessl.io/evaluate/optimize-a-skill-using-best-practices) and ask it to optimize your skill. Ping me — [@yogesh-tessl](https://github.com/yogesh-tessl) — if you hit any snags. Thanks in advance 🙏 --- skills/ai-sdk/SKILL.md | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/skills/ai-sdk/SKILL.md b/skills/ai-sdk/SKILL.md index f233ec4..b157403 100644 --- a/skills/ai-sdk/SKILL.md +++ b/skills/ai-sdk/SKILL.md @@ -1,6 +1,6 @@ --- name: ai-sdk -description: Vercel AI SDK expert guidance. Use when building AI-powered features — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with any LLM provider. +description: "Vercel AI SDK expert guidance. Use when building AI-powered features with the AI SDK — chat interfaces, text generation, structured output, tool calling, agents, MCP integration, streaming, embeddings, reranking, image generation, or working with LLM providers through AI SDK provider packages." metadata: priority: 8 docs: @@ -314,25 +314,18 @@ chainTo: ## Prerequisites -Before searching docs, check if `node_modules/ai/docs/` exists. If not, install **only** the `ai` package using the project's package manager (e.g., `pnpm add ai`). +Before searching docs, check if `node_modules/ai/docs/` exists. If not, install **only** the `ai` package using the project's package manager (e.g., `pnpm add ai`). Provider and client packages (e.g., `@ai-sdk/openai`, `@ai-sdk/react`) should be installed later when needed. -Do not install other packages at this stage. Provider packages (e.g., `@ai-sdk/openai`) and client packages (e.g., `@ai-sdk/react`) should be installed later when needed based on user requirements. +## Always Verify Against Source -## Critical: Do Not Trust Internal Knowledge +AI SDK APIs change between major versions — never rely on training data for API signatures or patterns. -Everything you know about the AI SDK is outdated or wrong. Your training data contains obsolete APIs, deprecated patterns, and incorrect usage. - -**When working with the AI SDK:** - -1. Ensure `ai` package is installed (see Prerequisites) -2. Search `node_modules/ai/docs/` and `node_modules/ai/src/` for current APIs -3. If not found locally, search ai-sdk.dev documentation (instructions below) -4. Never rely on memory - always verify against source code or docs -5. **`useChat` has changed significantly** - check [Common Errors](references/common-errors.md) before writing client code -6. When deciding which model and provider to use (e.g. OpenAI, Anthropic, Gemini), use the Vercel AI Gateway provider unless the user specifies otherwise. See [AI Gateway Reference](references/ai-gateway.md) for usage details. -7. **Always fetch current model IDs** - Never use model IDs from memory. Before writing code that uses a model, run `curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '[.data[] | select(.id | startswith("provider/")) | .id] | reverse | .[]'` (replacing `provider` with the relevant provider like `anthropic`, `openai`, or `google`) to get the full list with newest models first. Use the model with the highest version number (e.g., `claude-sonnet-4-5` over `claude-sonnet-4` over `claude-3-5-sonnet`). -8. Run typecheck after changes to ensure code is correct -9. **Be minimal** - Only specify options that differ from defaults. When unsure of defaults, check docs or source rather than guessing or over-specifying. +1. Search `node_modules/ai/docs/` and `node_modules/ai/src/` for current APIs +2. If not found locally, search ai-sdk.dev documentation (instructions below) +3. Check [Common Errors](references/common-errors.md) before writing client code — `useChat` changed significantly in v6 +4. Use the Vercel AI Gateway as the default provider — see [AI Gateway Reference](references/ai-gateway.md) for setup, model IDs, and authentication +5. Run typecheck after changes to catch stale API usage +6. Only specify options that differ from defaults — check docs or source when unsure If you cannot find documentation to support your answer, state that explicitly.