From Toru Claude Agents
Guides designing agents, skills, and hooks for Claude Code with correct field usage and spec awareness.
How this skill is triggered — by the user, by Claude, or both
Slash command
/toru-claude-agents:claude-code-masteryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use the `cc-docs` skill to read the official Claude Code documentation before you design
Use the cc-docs skill to read the official Claude Code documentation before you design
anything against it — the spec moves, and this file is a map, not a substitute for it.
Use this knowledge to continuously improve how you work.
Location: ~/.claude/agents/ (user) or .claude/agents/ (project)
Key fields:
---
name: agent-name
description: When Claude should delegate here
tools: Read, Grep, Glob, Bash, Edit, Write
model: sonnet | opus | haiku | inherit
permissionMode: default | acceptEdits | bypassPermissions
skills: skill-1, skill-2
hooks:
PreToolUse: [...]
PostToolUse: [...]
---
System prompt content here...
Use subagents when:
Location: ~/.claude/skills/ (user) or .claude/skills/ (project)
Structure:
skill-name/
├── SKILL.md # Required - main instructions
├── reference.md # Optional - detailed docs
└── scripts/ # Optional - utilities
Key fields:
---
name: skill-name
description: When to apply this skill (triggers auto-loading)
allowed-tools: Read, Grep, Glob # Optional tool restriction
context: fork # Optional - run in subagent
---
Instructions here...
Use skills when:
Location: .claude/settings.json or subagent frontmatter
Events:
PreToolUse - Before tool executes (can block)PostToolUse - After tool executesSubagentStart - When subagent beginsSubagentStop - When subagent completesSessionStart - When session beginsExample:
{
"hooks": {
"PostToolUse": [{
"matcher": "Edit|Write",
"hooks": [{
"type": "command",
"command": "./scripts/auto-lint.sh"
}]
}]
}
}
Use hooks when:
Configuration: ~/.claude.json or .mcp.json
Access external tools:
Problem: Same context loaded every session Solution: Create a skill that auto-applies
---
name: project-context
description: Apply when working on [project]. Auto-loads conventions.
---
Problem: Manually checking things before commit Solution: Create PreToolUse hook
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash(git commit:*)",
"hooks": [{"type": "command", "command": "./scripts/pre-commit-check.sh"}]
}]
}
}
Problem: Unclear when to use which agent Solution: Improve agent descriptions, add proactive triggers
description: Use proactively when [specific trigger]. Handles [specific task].
Problem: Decisions forgotten between sessions Solution: megg_remember after every significant decision
Fetch these with the cc-docs skill rather than trusting a remembered field list:
| Topic | URL |
|---|---|
| Subagents | https://code.claude.com/docs/en/sub-agents |
| Skills | https://code.claude.com/docs/en/skills |
| Hooks | https://code.claude.com/docs/en/hooks-guide |
| MCP | https://code.claude.com/docs/en/mcp |
| Headless mode | https://code.claude.com/docs/en/headless |
| Settings | https://code.claude.com/docs/en/settings |
| CLI reference | https://code.claude.com/docs/en/cli-reference |
When improving workflows:
npx claudepluginhub toruai/toru-claude-agents --plugin toru-claude-agentsQuick-reference for editing Claude Code skills, agents, slash commands, hooks, plugins, and configs. Triggers on YAML frontmatter, .claude/ files, Task tools, hook debugging.
Knowledge base on Claude Code formats, patterns, and configurations for commands, agents, skills, hooks, memory, plugins, settings. Use for creating, improving, auditing components.
Provides best practices for using Claude Code effectively, covering subagents, commands, skills, memory, hooks, MCP servers, and orchestration workflows. Activated by questions about Claude Code usage.