ai

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.

16 stars

Best use case

ai is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using ai should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ai/SKILL.md --create-dirs "https://raw.githubusercontent.com/howells/arc/main/skills/ai/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ai/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How ai Compares

Feature / AgentaiStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

<tool_restrictions>
# MANDATORY Tool Restrictions

## BANNED TOOLS — calling these is a skill violation:
- **`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>
This workflow requires the full Arc bundle, not a prompts-only install.

Paths in this skill use these conventions:
- `agents/...`, `references/...`, `disciplines/...`, `templates/...`, `scripts/...`, `rules/...`, `skills/<name>/...` are Arc-owned files at the plugin root. Resolve the plugin root from this skill's filesystem location — it's the directory containing `agents/` and `skills/`.
- `./...` is local to this skill's directory.
- `.ruler/...`, `docs/...`, `src/...`, or any project-relative path refers to the user's project repository.
</arc_runtime>

```

───────────────────────────────────────────────────────────
```

AI SDK 6 guidance for building AI-powered features.

<required_reading>
**Read after detecting AI SDK (Step 1):**
1. references/ai-sdk.md — Patterns and code examples
2. rules/ai-sdk.md — MUST/NEVER constraints
</required_reading>

<process>

## Step 1: Detect AI SDK

**Check package.json for AI SDK:**

```bash
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:**
```bash
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)
```

## Step 2: Load Reference & Rules

**Read the patterns reference:**
```
Read: references/ai-sdk.md
```

**Read the rules (MUST/NEVER constraints):**
```
Read: rules/ai-sdk.md
```

## Step 3: Understand What the User Is Building

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.

## Step 4: Present Relevant Patterns

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 `toUIMessageStreamResponse`
- `Cannot read property 'args'` → renamed to `input`
- `generateObject is not a function` → use `generateText` with `Output.object`
- `maxSteps is not a valid option` → use `stopWhen: stepCountIs(n)`
- Request hangs silently → check prompt size (>100K tokens causes silent failures on OpenRouter)

## Step 5: Load Project Rules (if .ruler/ exists)

**Check for project rules:**
```bash
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.
```

## Step 6: Offer Next Steps

```
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":
- Grep for deprecated patterns: `generateObject`, `maxTokens`, `maxSteps`, `toDataStreamResponse`, `addToolResult`, `part.args`, `part.result`, `tool-invocation`
- Report findings with file:line references and the correct v6 replacement

</process>

<notes>
- This skill is cross-cutting — invoke anytime, not just during implementation
- The reference file (references/ai-sdk.md) is also loaded by /arc:implement when it detects `ai` in package.json
- The rules file (rules/ai-sdk.md) is copied to .ruler/ by /arc:rules and loaded by all build agents
- OpenRouter is the default provider per stack.md. The patterns use it throughout.
</notes>

Related Skills

vision

16
from howells/arc

Create or review a high-level vision document capturing project goals and purpose. Use when asked to "define the vision", "what is this project", "set goals", or when starting a new project that needs clarity on purpose and direction.

using-arc

16
from howells/arc

Use when starting any conversation - establishes Arc's skill routing, instruction priority, and bootstrap rules

tidy

16
from howells/arc

Clean up completed plans in docs/arc/plans/. Archives or deletes finished plans. Use when asked to "clean up plans", "tidy the docs", "archive old plans", or after completing implementation to remove stale planning documents.

testing

16
from howells/arc

Comprehensive testing strategy. Creates test plans covering unit, integration, and E2E. Uses specialist agents for each test type. Supports vitest and Playwright with auth testing guidance for Clerk and WorkOS.

suggest

16
from howells/arc

Opinionated recommendations for what to work on next based on Linear issues, tasks, and codebase. Use when asked "what should I work on", "what's next", "suggest priorities", or when starting a session and unsure where to begin.

seo

16
from howells/arc

Deep SEO audit for web projects. Analyzes codebase for crawlability, indexability, on-page SEO, structured data, social previews, and technical foundations. Optionally runs Lighthouse and PageSpeed against a live URL. Reports findings with severity, offers direct fixes or /arc:detail plans. Use when asked to "audit SEO", "check SEO", "review SEO", or "is my site SEO-ready".

responsive

16
from howells/arc

Audit and fix responsive/mobile issues across every page of a project, using browser screenshots at two breakpoints (375px mobile, 1440px desktop). Design-aware: reads existing design docs to preserve aesthetic intent, not just "make it fit." Use when asked to "make it responsive", "fix mobile", "responsive audit", or after building a desktop-first UI that needs mobile adaptation.

refactor

16
from howells/arc

Discover architectural friction and propose structural refactors with competing interface designs. Focuses on deepening shallow modules, consolidating coupled code, and improving testability. Use when asked to "improve the architecture", "find refactoring opportunities", "deepen modules", "consolidate coupling", "make this more testable", or "find architectural friction".

prune-agents

16
from howells/arc

Kill orphaned Claude subagent processes that didn't exit cleanly. Use when asked to "prune agents", "clean up agents", "kill orphaned processes", or when subagents accumulate from Task tool usage.

progress

16
from howells/arc

Internal skill for progress journal management. Other skills append to docs/arc/progress.md for cross-session context. Not invoked directly by users.

naming

16
from howells/arc

Generate and validate project names. Reads codebase context, produces candidates using tech naming strategies, and checks domain + GitHub availability. Use when naming a new project, renaming, or validating an existing name.

letsgo

16
from howells/arc

Production readiness checklist covering domains, SEO, security, and deployment. Use when asked to "ship it", "deploy to production", "go live", "launch", or when preparing a project for production deployment.