From arc
Guides Vercel AI SDK 6 usage for AI features: loads patterns for chat UIs, agents, structured output, streaming; detects version and warns on deprecated APIs.
npx claudepluginhub howells/arc --plugin arcThis skill uses the workspace's default tool permissions.
<tool_restrictions>
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
<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><arc_runtime> Arc-owned files live under the Arc install root for full-runtime installs.
Set ${ARC_ROOT} to that root and use ${ARC_ROOT}/... for Arc bundle files such as
references/, disciplines/, agents/, templates/, scripts/, and rules/.
Project-local files stay relative to the user's repository. </arc_runtime>
───────────────────────────────────────────────────────────
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: ${ARC_ROOT}/references/ai-sdk.md
Read the rules (MUST/NEVER constraints):
Read: 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 the AskUserQuestion interaction pattern 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: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-invocation