AI SDK guidance for building AI-powered features. Loads correct patterns, warns about deprecated APIs, and guides through chat UIs, agents, structured output, and streaming. Use when building AI features, debugging AI SDK errors, or before implementing any AI work.
Guides AI SDK v6 development with correct patterns, migration help, and debugging for chat UIs, agents, and structured output.
/plugin marketplace add howells/arc/plugin install arc@howellsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
<tool_restrictions>
EnterPlanMode — BANNED. Do NOT call this tool. This skill has its own structured process. Execute the steps below directly.ExitPlanMode — BANNED. You are never in plan mode.
</tool_restrictions>
───────────────────────────────────────────────────────────
AI SDK 6 guidance for building AI-powered features.
<required_reading> Read after detecting AI SDK (Step 1):
Check package.json for AI SDK:
grep -E '"ai"' package.json
If not found:
AI SDK (`ai` package) not found in this project.
1. Install it — `pnpm add ai @ai-sdk/react @openrouter/ai-sdk-provider`
2. Skip — I'll explain the patterns without a project context
Wait for user choice. If install, run the command and continue.
If found, extract version:
grep -A1 '"ai"' package.json | grep -oE '[0-9]+\.[0-9]+\.[0-9]+'
If version < 6:
⚠ AI SDK version [version] detected. Version 6 has breaking changes that affect
almost every API. The patterns I'll load are for v6+.
If you're migrating, I'll highlight what changed. If you're staying on v5, some
patterns won't apply.
Continue with v6 patterns? (recommended even for planning a migration)
Read the patterns reference:
Read: ${CLAUDE_PLUGIN_ROOT}/references/ai-sdk.md
Read the rules (MUST/NEVER constraints):
Read: ${CLAUDE_PLUGIN_ROOT}/rules/ai-sdk.md
Ask what they're working on:
AI SDK reference loaded. What are you building?
1. Chat UI — useChat, message rendering, streaming
2. Agent — tool loops, multi-step reasoning
3. Structured output — typed responses from LLMs
4. Streaming API — streamText, server routes
5. All of the above — full reference
6. Debugging — something isn't working
Use AskUserQuestion with these options.
Based on user selection, highlight the most relevant sections from the reference:
Chat UI: Focus on useChat v6 setup (DefaultChatTransport, manual input state, sendMessage), toUIMessageStreamResponse, typed tool parts.
Agent: Focus on ToolLoopAgent, stopWhen: stepCountIs(n), InferAgentUIMessage, createAgentUIStreamResponse with uiMessages.
Structured output: Focus on Output.object, Output.array, Output.choice, accessing result.output.
Streaming: Focus on streamText, toUIMessageStreamResponse, createAgentUIStreamResponse.
All: Present the quick migration table and note which sections are available.
Debugging: Ask for the error message. Common issues:
toDataStreamResponse is not a function → renamed to toUIMessageStreamResponseCannot read property 'args' → renamed to inputgenerateObject is not a function → use generateText with Output.objectmaxSteps is not a valid option → use stopWhen: stepCountIs(n)Check for project rules:
ls .ruler/ai-sdk.md 2>/dev/null
If .ruler/ai-sdk.md exists, it's already loaded by build agents. Note this to the user.
If it doesn't exist but .ruler/ does exist:
Your project has coding rules (.ruler/) but no AI SDK rules yet.
Run /arc:rules to update, or I can copy them now.
AI SDK context loaded. Ready to build.
1. Start building → /arc:build or /arc:implement
2. Review existing AI code → I'll check for deprecated API usage
3. Set up from scratch → I'll scaffold the provider, route, and component
If user selects "Review existing AI code":
generateObject, maxTokens, maxSteps, toDataStreamResponse, addToolResult, part.args, part.result, tool-invocationActivates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.