Skill

create-agent

Scaffold a new custom agent configuration with Claude Agent SDK patterns. Use when adding a new specialized subagent.

From tac
Install
1
Run in your terminal
$
npx claudepluginhub melodic-software/claude-code-plugins --plugin tac
Tool Access

This skill is limited to using the following tools:

ReadWriteGlob
Skill Content

Create Agent

Scaffold a new custom agent configuration.

Arguments

  • $1: Agent name (kebab-case)
  • $ARGUMENTS: High-level purpose description (after name)

Instructions

You are creating a new custom agent scaffold using Claude Agent SDK patterns.

Step 1: Parse Arguments

Extract:

  • Agent name from $1 (required)
  • Purpose from remaining arguments

If no name provided, STOP and ask for agent name. If no purpose provided, STOP and ask for purpose description.

Step 2: Design Agent

Based on the purpose, determine:

Model Selection:

  • Simple transformations -> Haiku
  • Balanced tasks -> Sonnet
  • Complex reasoning -> Opus

System Prompt Architecture:

  • Building new product -> Override
  • Extending Claude Code -> Append

Tool Requirements:

  • What tools needed?
  • What tools should be blocked?
  • Any custom tools required?

Step 3: Generate System Prompt

Create system prompt following structure:

# [Agent Name]

## Purpose

[Identity and role - 2-3 sentences]

## Instructions

[Core behaviors - bullet list]

## Constraints

[What agent must NOT do]

## Examples (if needed)

[Input/Output pairs]

Step 4: Generate Configuration

Create ClaudeAgentOptions configuration:

from claude_agent_sdk import ClaudeAgentOptions

def load_system_prompt() -> str:
    prompt_file = Path(__file__).parent / "prompts" / "[agent]_system.md"
    with open(prompt_file, "r") as f:
        return f.read().strip()

options = ClaudeAgentOptions(
    system_prompt=load_system_prompt(),
    model="claude-[model]-...",
    allowed_tools=[...],
    disallowed_tools=[...],
)

Step 5: Generate Entry Point

Create basic agent script:

import asyncio
from pathlib import Path
from claude_agent_sdk import (
    query,
    ClaudeAgentOptions,
    AssistantMessage,
    TextBlock,
    ResultMessage,
)

async def main():
    options = ClaudeAgentOptions(...)

    prompt = input("Enter prompt: ")

    async for message in query(prompt=prompt, options=options):
        if isinstance(message, AssistantMessage):
            for block in message.content:
                if isinstance(block, TextBlock):
                    print(block.text)
        elif isinstance(message, ResultMessage):
            print(f"Cost: ${message.total_cost_usd:.6f}")

if __name__ == "__main__":
    asyncio.run(main())

Output

## Agent Created

**Name:** [agent-name]
**Model:** [haiku/sonnet/opus]
**Architecture:** [override/append]

### Files to Create

1. `[agent-name]/prompts/[agent]_system.md` - System prompt
2. `[agent-name]/[agent]_agent.py` - Agent implementation
3. `[agent-name]/README.md` - Documentation

### System Prompt

```markdown
[Generated system prompt]

Configuration

[Generated configuration]

Entry Point

[Generated script]

Next Steps

  1. Create the directory structure
  2. Save the system prompt
  3. Save the agent script
  4. Test with simple prompt
  5. Add custom tools if needed
  6. Add governance hooks if needed

Notes

  • See @custom-agent-design skill for design workflow
  • See @core-four-custom.md for configuration options
  • See @system-prompt-architecture.md for prompt patterns
Stats
Parent Repo Stars40
Parent Repo Forks6
Last CommitMar 17, 2026