6.6 KiB
6.6 KiB
Quick Start Guide
Fast track to using Claude Code templates.
30-Second Quick Start
# 1. Choose a template (from outfitter/templates/)
ls slash-commands/ # or hooks/, skills/, agents/
# 2. Copy it
cp slash-commands/simple.md ~/.claude/commands/my-command.md
# 3. Edit it (replace [YOUR_*] placeholders)
# 4. Use it
claude
/my-command
Template Quick Reference
Slash Commands
# Simple command
cp slash-commands/simple.md .claude/commands/review.md
# With arguments ($1, $2, $ARGUMENTS)
cp slash-commands/with-args.md .claude/commands/fix-issue.md
# With bash execution (!`git status`)
cp slash-commands/with-bash.md .claude/commands/commit.md
# With file references (@src/file.ts)
cp slash-commands/with-files.md .claude/commands/analyze.md
Location: .claude/commands/ (project) or ~/.claude/commands/ (personal)
Hooks
# Auto-formatter (PostToolUse)
cp -r hooks/post-tool-use-formatter/ .claude/hooks/formatter/
chmod +x .claude/hooks/formatter/format.sh
# File validator (PreToolUse)
cp -r hooks/pre-tool-use-validator/ .claude/hooks/validator/
chmod +x .claude/hooks/validator/validate.sh
# Add context (UserPromptSubmit)
cp -r hooks/user-prompt-context/ .claude/hooks/context/
chmod +x .claude/hooks/context/add-context.sh
# Bash validator (PreToolUse, TypeScript)
cp -r hooks/bash-validator/ .claude/hooks/bash/
chmod +x .claude/hooks/bash/validate-bash.ts
Then add to .claude/settings.json:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit(*.ts)",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/formatter/format.sh",
"timeout": 30
}
]
}
]
}
}
Skills
# Simple skill
cp -r skills/simple-skill/ .claude/skills/my-skill/
# Complex skill with docs
cp -r skills/multi-file-skill/ .claude/skills/my-complex-skill/
# Skill with helper scripts
cp -r skills/skill-with-scripts/ .claude/skills/my-scripted-skill/
chmod +x .claude/skills/my-scripted-skill/scripts/*.sh
Location: .claude/skills/ (project) or ~/.claude/skills/ (personal)
Critical: Edit the description field - it controls discovery!
Agents
# Code reviewer
cp agents/code-reviewer.md .claude/agents/
# Test specialist
cp agents/test-specialist.md .claude/agents/
# Documentation generator
cp agents/documentation-generator.md .claude/agents/
Location: .claude/agents/ (project) or ~/.claude/agents/ (personal)
Common Tasks
Create a Git Commit Command
# 1. Copy template
cp slash-commands/with-bash.md .claude/commands/commit.md
# 2. Edit .claude/commands/commit.md
# Replace:
# [YOUR_DESCRIPTION] → "Create a git commit from staged changes"
# [YOUR_ALLOWED_TOOLS] → "Bash(git *)"
# [YOUR_BASH_COMMANDS] → Git commands you want
# [YOUR_INSTRUCTIONS_USING_THE_BASH_OUTPUT_ABOVE] → "Create commit with clear message"
# 3. Use it
claude
/commit
Create an Auto-Formatter Hook
# 1. Copy template
cp -r hooks/post-tool-use-formatter/ .claude/hooks/
# 2. Make executable
chmod +x .claude/hooks/format.sh
# 3. Configure in .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit(*.ts)",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/format.sh",
"timeout": 30
}
]
}
]
}
}
# 4. Test - write a .ts file and watch it format
Create a Custom Skill
# 1. Copy template
cp -r skills/simple-skill/ .claude/skills/pdf-processor/
# 2. Edit .claude/skills/pdf-processor/SKILL.md
# Replace:
# [YOUR_SKILL_NAME] → "pdf-processor"
# [YOUR_DESCRIPTION] → "Extract text from PDF files. Use when working with PDFs, documents, or when user mentions PDF extraction."
# [CORE_CAPABILITY] → Complete the instructions
# 3. Test - mention "PDF" in your prompt to activate
claude
"Can you help me extract text from a PDF?"
Placeholder Reference
Replace these in templates:
[YOUR_DESCRIPTION]- Brief description[YOUR_COMMAND_NAME]- Name[YOUR_PROMPT_INSTRUCTIONS]- Instructions[YOUR_ARG_HINT]- Argument hint (e.g.,<file>)[YOUR_ALLOWED_TOOLS]- Tool restrictions[YOUR_SKILL_NAME]- Skill name[CORE_CAPABILITY]- What it does[language]- Programming language[CODE_EXAMPLE]- Working code
Testing
Test a Command
claude
/help # Should see your command
/your-command arg1 arg2 # Run it
# Press Ctrl+R for transcript mode to see details
Test a Hook
# Test script manually first
echo '{"tool_name":"Write","tool_input":{"file_path":"test.ts"}}' | ./.claude/hooks/your-hook.sh
# Then test with Claude
claude --debug # See hook execution
# Trigger the hook (e.g., write a file)
Test a Skill
# Check it loads
claude --debug # Look for skill loading messages
# Test discovery
claude
# Use trigger keywords from description
Troubleshooting
Command not found
- Check:
.claude/commands/name.md(correct location?) - Check: Lowercase filename,
.mdextension - Fix: Restart Claude
Hook not firing
- Check: Matcher syntax in settings.json
- Check: Script is executable (
chmod +x) - Fix: Test script manually, enable debug mode
Skill not activating
- Check: Description has specific trigger keywords
- Check: YAML frontmatter valid (no tabs!)
- Fix: Use trigger keywords explicitly in prompt
Permission denied
# Make all scripts executable
find .claude/hooks -name "*.sh" -exec chmod +x {} \;
find .claude/skills -name "*.sh" -exec chmod +x {} \;
File Locations
| Component | Project | Personal | Plugin |
|---|---|---|---|
| Commands | .claude/commands/ |
~/.claude/commands/ |
commands/ |
| Hooks (config) | .claude/settings.json |
~/.claude/settings.json |
hooks/hooks.json |
| Hooks (scripts) | .claude/hooks/ |
~/.claude/hooks/ |
scripts/ |
| Skills | .claude/skills/ |
~/.claude/skills/ |
skills/ |
| Agents | .claude/agents/ |
~/.claude/agents/ |
agents/ |
Next Steps
- Read: README.md for detailed documentation
- Review: SUMMARY.md for complete overview
- Customize: Replace placeholders with your content
- Test: Run in Claude and iterate
Help
- Debug mode:
claude --debug - View hooks:
/hooksin Claude - View commands:
/helpin Claude - Test manually: Use transcript mode (Ctrl+R)
Quick Reference: Keep this file handy while building Claude Code components!