From tac
Scaffolds custom Claude Agent SDK configurations: generates system prompts, Python agent options, entry points, and docs for new specialized subagents.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tac:create-agentThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Scaffold a new custom agent configuration.
Scaffold a new custom agent configuration.
$1: Agent name (kebab-case)$ARGUMENTS: High-level purpose description (after name)You are creating a new custom agent scaffold using Claude Agent SDK patterns.
Extract:
$1 (required)If no name provided, STOP and ask for agent name. If no purpose provided, STOP and ask for purpose description.
Based on the purpose, determine:
Model Selection:
System Prompt Architecture:
Tool Requirements:
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]
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=[...],
)
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())
## 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]
[Generated configuration]
[Generated script]
npx claudepluginhub melodic-software/claude-code-plugins --plugin tacDesigns custom domain-specific agents with Claude Agent SDK patterns, covering purpose, model selection, prompts, tools, governance, and deployment.
Generates custom Claude Code agent.md files from purpose-based templates (Reviewer, Generator, Fixer, Tester, Documenter, Orchestrator). Configures tools, model, color; saves to .claude/agents/ and validates.
Guides creation of autonomous agents for Claude Code plugins, covering file structure, YAML frontmatter fields like name and description, system prompts, triggering conditions, tools, and best practices.