From aradotso-trending-skills-37
Provides structured tutorials and templates for Claude Code features: slash commands, memory, hooks, subagents, MCP, skills, plugins, checkpoints, and CLI.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aradotso-trending-skills-37:claude-howto-guideThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```markdown
---
name: claude-howto-guide
description: Master Claude Code features — slash commands, memory, hooks, subagents, MCP, skills, plugins, checkpoints, and CLI — using the claude-howto structured tutorial guide.
triggers:
- how do I use Claude Code effectively
- set up Claude Code slash commands
- configure hooks in Claude Code
- create a subagent workflow with Claude Code
- install MCP servers for Claude Code
- use Claude Code memory and CLAUDE.md
- set up a Claude Code plugin
- automate code review with Claude Code
---
# Claude How-To: Master Claude Code Features
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
`claude-howto` is a structured, visual, example-driven tutorial guide for Claude Code. It covers every major feature — slash commands, memory, skills, subagents, MCP, hooks, plugins, checkpoints, and CLI — with copy-paste templates, Mermaid diagrams, and a progressive 11–13 hour learning path.
---
## Installation
```bash
git clone https://github.com/luongnv89/claude-howto.git
cd claude-howto
No Python dependencies are required to use the templates. To build the offline EPUB:
uv run scripts/build_epub.py
claude-howto/
├── 01-slash-commands/ # User-invoked shortcuts (/cmd)
├── 02-memory/ # Persistent context (CLAUDE.md)
├── 03-skills/ # Reusable capabilities (auto-invoked)
├── 04-subagents/ # Specialized AI assistants
├── 05-mcp/ # External tool access via MCP protocol
├── 06-hooks/ # Event-driven automation
├── 07-plugins/ # Bundled feature packages
├── 08-checkpoints/ # Session snapshots and rewind
├── 09-advanced-features/ # Planning, thinking, background tasks
├── 10-cli/ # CLI commands, flags, options
├── LEARNING-ROADMAP.md # Guided learning path
├── CATALOG.md # Full feature catalog
└── CONTRIBUTING.md
# Create Claude Code command directory in your project
mkdir -p /path/to/your-project/.claude/commands
# Copy a slash command template
cp 01-slash-commands/optimize.md /path/to/your-project/.claude/commands/
# Set up project memory
cp 02-memory/project-CLAUDE.md /path/to/your-project/CLAUDE.md
# Install a skill
cp -r 03-skills/code-review ~/.claude/skills/
Slash commands are Markdown files in .claude/commands/. The filename becomes the command name.
File: .claude/commands/review.md
# Code Review
Review the current file or selection for:
- Logic errors and edge cases
- Performance bottlenecks
- Security vulnerabilities
- Style and readability
Provide a structured report with severity levels (critical / warning / suggestion).
Usage in Claude Code:
/review
Copy all example commands:
cp 01-slash-commands/*.md .claude/commands/
CLAUDE.md files give Claude persistent context about your project. They are auto-loaded at session start.
Scopes:
~/.claude/CLAUDE.md — global, applies to all projects./CLAUDE.md — project-level./src/CLAUDE.md — directory-levelTemplate: ./CLAUDE.md
# Project: my-api
## Stack
- Python 3.12, FastAPI, PostgreSQL
- Tests: pytest, httpx
- Linting: ruff, mypy
## Conventions
- All endpoints return `{"data": ..., "error": null}` or `{"data": null, "error": "..."}`
- Use `async def` for all route handlers
- Database sessions via `get_db()` dependency injection
## Key Commands
- `make test` — run test suite
- `make lint` — ruff + mypy
- `make migrate` — run Alembic migrations
## Do Not
- Never commit secrets or `.env` files
- Never use `print()` for logging — use `structlog`
Copy the template:
cp 02-memory/project-CLAUDE.md ./CLAUDE.md
Skills are reusable capability definitions that Claude invokes automatically based on context. They live in ~/.claude/skills/ (global) or .claude/skills/ (project).
Structure:
~/.claude/skills/
└── code-review/
├── skill.md # Skill definition
└── templates/ # Supporting templates
Install a skill:
cp -r 03-skills/code-review ~/.claude/skills/
Example skill.md:
# Skill: Code Review
Trigger: When reviewing code, PRs, or diffs.
## Behavior
1. Check for security vulnerabilities (injection, secrets, auth bypass)
2. Identify performance issues (N+1 queries, unbounded loops)
3. Verify error handling completeness
4. Assess test coverage gaps
5. Output findings as a structured Markdown report
Subagents are specialized Claude instances delegated subtasks. Define them in .claude/agents/.
File: .claude/agents/security-auditor.md
# Agent: Security Auditor
## Role
Specialized security review agent. Focus exclusively on:
- Injection vulnerabilities (SQL, command, LDAP)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure dependencies
## Output Format
Return a JSON report:
{
"critical": [...],
"high": [...],
"medium": [...],
"low": [...]
}
Orchestrating subagents in a workflow:
# Example: Trigger subagent delegation via Claude Code SDK
import anthropic
client = anthropic.Anthropic()
orchestrator_prompt = """
You are an orchestrator. For the following code diff, delegate to:
1. The security-auditor agent for vulnerability scanning
2. The performance-reviewer agent for bottleneck detection
Return a combined report.
Code diff:
{diff}
""".format(diff=open("changes.diff").read())
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=4096,
messages=[{"role": "user", "content": orchestrator_prompt}]
)
print(response.content[0].text)
MCP servers give Claude access to external tools and live data. Configure in .claude/mcp.json.
File: .claude/mcp.json
{
"servers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
}
}
}
Environment variables (never hardcode):
export GITHUB_TOKEN="your-token-here"
export DATABASE_URL="postgresql://user:pass@localhost/db"
Copy MCP config templates:
cp 05-mcp/mcp.json .claude/mcp.json
Hooks are scripts triggered by Claude Code events. They live in .claude/hooks/.
Supported events:
| Event | Trigger |
|---|---|
pre-tool-use | Before Claude runs any tool |
post-tool-use | After a tool completes |
pre-file-write | Before writing a file |
post-file-write | After writing a file |
session-start | When a session begins |
session-end | When a session ends |
File: .claude/hooks/post-file-write.sh
#!/bin/bash
# Auto-run linter after Claude writes a Python file
FILE="$1"
if [[ "$FILE" == *.py ]]; then
echo "Running ruff on $FILE..."
ruff check --fix "$FILE"
mypy "$FILE" --ignore-missing-imports
fi
File: .claude/hooks/pre-file-write.py
#!/usr/bin/env python3
"""Block writes to protected paths."""
import sys
import os
PROTECTED = [".env", "secrets.json", "credentials.yaml"]
file_path = sys.argv[1] if len(sys.argv) > 1 else ""
filename = os.path.basename(file_path)
if filename in PROTECTED:
print(f"BLOCKED: Writing to {filename} is not allowed.", file=sys.stderr)
sys.exit(1)
sys.exit(0)
Register hooks in .claude/config.json:
{
"hooks": {
"post-file-write": ".claude/hooks/post-file-write.sh",
"pre-file-write": ".claude/hooks/pre-file-write.py"
}
}
Copy hook templates:
cp 06-hooks/*.sh .claude/hooks/
cp 06-hooks/*.py .claude/hooks/
chmod +x .claude/hooks/*
Plugins bundle slash commands, skills, hooks, and memory into a single installable package.
Plugin structure:
my-plugin/
├── plugin.json
├── commands/
│ └── deploy.md
├── hooks/
│ └── pre-deploy.sh
├── skills/
│ └── deployment/skill.md
└── memory/
└── CLAUDE.md
File: plugin.json
{
"name": "devops-pipeline",
"version": "1.0.0",
"description": "Full DevOps automation plugin",
"commands": ["commands/deploy.md"],
"hooks": {
"pre-tool-use": "hooks/pre-deploy.sh"
},
"skills": ["skills/deployment/"],
"memory": "memory/CLAUDE.md"
}
Install a plugin:
# Copy from claude-howto examples
cp -r 07-plugins/devops-pipeline .claude/plugins/devops-pipeline
Checkpoints save session state so you can rewind to a known-good point.
In Claude Code:
/checkpoint save before-refactor
/checkpoint list
/checkpoint restore before-refactor
Use case — safe large refactoring:
1. /checkpoint save pre-auth-rewrite
2. Ask Claude to rewrite authentication module
3. Run tests: make test
4. If tests fail: /checkpoint restore pre-auth-rewrite
Force Claude to plan before acting:
/plan Refactor the user authentication module to use JWT tokens
Or in a slash command:
# Refactor Plan
Before making any changes:
1. Analyze the current implementation
2. Identify all affected files and dependencies
3. Write a step-by-step migration plan
4. Ask for approval before proceeding
Then execute the approved plan.
For complex problems, enable deep reasoning:
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000
},
messages=[{
"role": "user",
"content": "Design a distributed rate limiter for 10M req/s with Redis"
}]
)
for block in response.content:
if block.type == "thinking":
print("Reasoning:", block.thinking)
elif block.type == "text":
print("Answer:", block.text)
Long-running tasks that don't block your session:
/background Run the full test suite and report results when complete
/background Generate API documentation for all endpoints
/background Scan all Python files for security vulnerabilities
Key Claude Code CLI commands and flags:
# Start interactive session
claude
# Run a one-shot prompt (non-interactive)
claude -p "Explain the auth middleware in src/middleware/auth.py"
# Run with a specific model
claude --model claude-opus-4-6
# Read-only mode (no file writes)
claude --read-only
# Output as JSON (for scripting)
claude -p "List all TODO comments" --output-format json
# Continue last session
claude --continue
# Resume a specific session
claude --resume <session-id>
# Set system prompt
claude --system-prompt "You are a security-focused reviewer"
# Pipe input
cat src/api.py | claude -p "Review this file for security issues"
# Run in a specific directory
claude --cwd /path/to/project
Scripting with Claude Code CLI:
#!/bin/bash
# ci-review.sh — Run Claude Code review in CI pipeline
FILES=$(git diff --name-only HEAD~1 HEAD | grep '\.py$')
for FILE in $FILES; do
echo "Reviewing $FILE..."
claude -p "Review $FILE for bugs and security issues. Output JSON." \
--output-format json \
--read-only \
--cwd "$(pwd)" \
>> review-results.json
done
echo "Review complete. Results in review-results.json"
Slash Command (/review)
→ Subagent: security-auditor
→ Subagent: performance-reviewer
→ Hook (post-tool-use): format and post results
→ Memory: store findings in CLAUDE.md
.claude/commands/review.md:
# Full Code Review
Orchestrate a comprehensive review:
1. Delegate security analysis to the security-auditor agent
2. Delegate performance analysis to the performance-reviewer agent
3. Combine results into a single Markdown report
4. Save a summary to `.claude/review-log.md`
Format: Use severity badges (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low)
# 1. Save checkpoint
# In Claude Code: /checkpoint save pre-refactor
# 2. Run refactor with planning mode
# /plan Refactor database layer to use async SQLAlchemy
# 3. Validate
make test
# 4. On failure, restore
# /checkpoint restore pre-refactor
# .github/workflows/claude-review.yml equivalent as shell
#!/bin/bash
# Run on every PR
PR_DIFF=$(git diff main...HEAD)
echo "$PR_DIFF" | claude \
-p "Review this PR diff. Return JSON with: summary, risks, suggestions." \
--output-format json \
--read-only > pr-review.json
# Post results to PR via GitHub API
curl -X POST \
-H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"body\": \"$(cat pr-review.json | python3 -c 'import sys,json; d=json.load(sys.stdin); print(d[\"summary\"])')\"}" \
"https://api.github.com/repos/$REPO/issues/$PR_NUMBER/comments"
Run directly inside Claude Code:
/self-assessment # Full quiz — identifies your gaps and builds a personalized roadmap
/lesson-quiz hooks # Quiz on hooks specifically
/lesson-quiz subagents # Quiz on subagents
/lesson-quiz mcp # Quiz on MCP protocol
| Step | Module | Time |
|---|---|---|
| 1 | Slash Commands | 30 min |
| 2 | Memory | 45 min |
| 3 | Checkpoints | 45 min |
| 4 | CLI Basics | 30 min |
| 5 | Skills | 1 hour |
| 6 | Hooks | 1 hour |
| 7 | MCP | 1 hour |
| 8 | Subagents | 1.5 hours |
| 9 | Advanced Features | 2–3 hours |
| 10 | Plugins | 2 hours |
Slash command not appearing:
.claude/commands/ (project) or ~/.claude/commands/ (global).mdCLAUDE.md not loading:
CLAUDE.md (case-sensitive)Hook not triggering:
chmod +x .claude/hooks/myhook.sh.claude/config.jsonMCP server not connecting:
echo $GITHUB_TOKENnpx -y @modelcontextprotocol/server-github.claude/mcp.json for JSON syntax errorsSubagent not delegating:
.claude/agents/.md file has a clear ## Role sectionLEARNING-ROADMAP.mdCATALOG.mdCONTRIBUTING.mdnpx claudepluginhub aradotso/trending-skillsProvides 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.
Maximizes productivity with Anthropic's Claude Code CLI: shortcuts, hooks, MCPs, advanced configuration, workflows, CLAUDE.md, memory, sub-agents, permissions, and ecosystem integrations. Activate for configuring Claude Code, creating hooks, optimizing CLAUDE.md, using MCPs, resolving CLI errors, or advanced workflows.
Deep expertise in Claude Code CLI configuration, hooks, MCPs, CLAUDE.md, sub-agents, permissions, and workflows. Activate for setup, optimization, or troubleshooting of Claude Code features.