claude-sdk

SKILL.md

Claude SDK Expert

Expert knowledge of Claude Code SDK, tools, and extension development.

Core Tools

File Operations:

// Read files
Read({ file_path: '/absolute/path/file.ts' });

// Write files (creates new or overwrites)
Write({
  file_path: '/absolute/path/file.ts',
  content: 'export const hello = () => "world";'
});

// Edit files (precise replacements)
Edit({
  file_path: '/absolute/path/file.ts',
  old_string: 'const x = 1;',
  new_string: 'const x = 2;'
});

Search:

// Find files by pattern
Glob({ pattern: '**/*.ts' });

// Search file contents
Grep({
  pattern: 'TODO',
  output_mode: 'files_with_matches'
});

// Search with context
Grep({
  pattern: 'function.*export',
  output_mode: 'content',
  '-C': 3, // 3 lines before/after
  '-n': true // Line numbers
});

Execution:

// Run commands
Bash({
  command: 'npm test',
  description: 'Run test suite'
});

// Background processes
Bash({
  command: 'npm run dev',
  run_in_background: true
});

Agent Tools

Sub-agents:

// Invoke specialized sub-agent
Task({
  subagent_type: 'plugin:agent-folder:agent-name',
  prompt: 'Analyze this architecture'
});

Skills:

// Activate skill explicitly
Skill({ skill: 'skill-name' });

// Or let auto-activation handle it

Commands:

// Execute slash command
SlashCommand({ command: '/plugin:command arg1 arg2' });

Plugin Hooks

Available Hook Events:

type HookEvent =
  | 'PostToolUse'        // After tool executes
  | 'PreToolUse'         // Before tool executes
  | 'PermissionRequest'  // User permission dialog
  | 'Notification'       // System notification
  | 'UserPromptSubmit'   // After user submits prompt
  | 'Stop'               // Conversation stopped
  | 'SubagentStop'       // Sub-agent stopped
  | 'PreCompact'         // Before context compaction
  | 'SessionStart'       // Session started
  | 'SessionEnd';        // Session ended

Hook Configuration:

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "TodoWrite",
        "hooks": [{
          "type": "command",
          "command": "${CLAUDE_PLUGIN_ROOT}/hooks/post-task.sh",
          "timeout": 10
        }]
      }
    ]
  }
}

MCP (Model Context Protocol)

Code-First Preferred: Anthropic research shows code execution achieves 98% token reduction vs MCP. Use MCP only for: quick debugging, Claude Desktop integration, or tools with no code equivalent. For automation, CI/CD, and production - write code instead.

MCP Server Integration (when needed):

// Connect to MCP server
const mcp = await connectMCP({
  name: 'filesystem',
  transport: 'stdio',
  command: 'node',
  args: ['mcp-server-filesystem.js']
});

// Use MCP tools
mcp.call('read_file', { path: '/path/to/file' });

Best Practices

Tool Usage:

  • Use absolute paths (not relative)
  • Handle errors gracefully
  • Provide clear descriptions
  • Batch independent operations

Performance:

  • Minimize tool calls
  • Use Grep before Read (search first)
  • Parallel independent operations
  • Cache results when possible

Security:

  • Validate file paths
  • Sanitize user input
  • No hardcoded secrets
  • Use environment variables

Build powerful Claude Code extensions!

Weekly Installs
10
Installed on
claude-code9
antigravity7
windsurf6
opencode6
cursor6
codex6