Skip to content
Back to skills

Claude Code Guide

ASecurity

Fetch Claude Code documentation and help update configuration. Use /claude-code-guide <topic> where topic is: memory, skills, hooks, agents, settings, mcp, plugins, cli, overview, all

  • 25 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added June 6, 2026
code-qualitytypescriptbashreacttestingcode-reviewgitapisecurityperformancedocumentation

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add matteocervelli/llms --skill claude-code-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Claude Code Guide?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Claude Code Guide
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/matteocervelli-claude-code-guide/badge)](https://www.skillsdirectory.com/skills/matteocervelli-claude-code-guide)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: claude-code-guide
description: "Fetch Claude Code documentation and help update configuration. Use /claude-code-guide <topic> where topic is: memory, skills, hooks, agents, settings, mcp, plugins, cli, overview, all"
---

## Purpose

Fetch the latest Claude Code documentation from code.claude.com and help update your configuration files based on current best practices.

## Usage

/claude-code-guide <topic>

## Topics

| Topic      | Description             | Doc URLs                       | Config Files                       |
| ---------- | ----------------------- | ------------------------------ | ---------------------------------- |
| `memory`   | CLAUDE.md configuration | /memory, /best-practices       | CLAUDE.md, CLAUDE.local.md         |
| `skills`   | Skills system           | /skills                        | .claude/skills/\*.md               |
| `hooks`    | Hooks configuration     | /hooks, /hooks-guide           | .claude/hooks/, settings.json      |
| `agents`   | Custom subagents        | /sub-agents                    | .claude/agents/\*.md               |
| `settings` | Settings.json config    | /settings                      | settings.json, settings.local.json |
| `mcp`      | MCP servers             | /mcp                           | settings.json mcpServers           |
| `plugins`  | Plugin system           | /plugins, /plugin-marketplaces | plugins/                           |
| `cli`      | CLI reference           | /cli-reference                 | N/A (reference)                    |
| `overview` | Features overview       | /features-overview             | N/A (reference)                    |
| `all`      | Full documentation      | All above                      | All config files                   |

---

## Embedded Best Practices

### Memory (CLAUDE.md)

**File Locations & Precedence (highest to lowest):**

1. **Managed policy**: `/Library/Application Support/ClaudeCode/CLAUDE.md` (macOS) - org-wide
2. **Project memory**: `./CLAUDE.md` or `./.claude/CLAUDE.md` - team-shared
3. **Project rules**: `./.claude/rules/*.md` - modular topic-specific rules
4. **User memory**: `~/.claude/CLAUDE.md` - personal across all projects
5. **Project local**: `./CLAUDE.local.md` - personal project-specific (gitignored)

**Best Practices:**

- Be specific: "Use 2-space indentation" beats "Format code properly"
- Use structure: Format memories as bullet points under descriptive markdown headings
- Review periodically: Update as project evolves
- Use imports: `@path/to/file` syntax to include other files
- Path-specific rules: Use YAML frontmatter with `paths` field for conditional rules

**Example CLAUDE.md:**

```markdown
# Project Standards

- Use TypeScript strict mode
- Follow ESLint airbnb config
- Write tests for all new functions

# Commands

- Build: `npm run build`
- Test: `npm test`
- Lint: `npm run lint`

# Architecture

- React components in src/components/
- API routes in src/api/
- Shared utilities in src/utils/
```

**Modular Rules (.claude/rules/):**

```markdown
---
paths:
  - "src/api/**/*.ts"
---

# API Development Rules

- All endpoints must include input validation
- Use standard error response format
- Include OpenAPI documentation comments
```

---

### Skills

**Location:** `.claude/skills/<skill-name>/SKILL.md`

**Frontmatter Fields:**
| Field | Required | Description |
|-------|----------|-------------|
| `name` | No | Display name (defaults to directory name) |
| `description` | Recommended | When to use this skill |
| `argument-hint` | No | Hint for arguments, e.g., `[filename]` |
| `disable-model-invocation` | No | `true` = only user can invoke |
| `user-invocable` | No | `false` = only Claude can invoke |
| `allowed-tools` | No | Restrict tools available |
| `model` | No | Model override |
| `context` | No | `fork` = run in subagent |
| `agent` | No | Subagent type when `context: fork` |

**Example Skill:**

```yaml
---
name: code-review
description: Reviews code for quality and best practices. Use after code changes.
allowed-tools: Read, Grep, Glob
---

When reviewing code:
1. Check for code clarity and readability
2. Look for potential bugs
3. Verify error handling
4. Check test coverage
5. Note security concerns

Provide feedback organized by priority:
- Critical (must fix)
- Warnings (should fix)
- Suggestions (consider)
```

**Supporting Files:** Skills can include additional files (templates, scripts, examples) referenced from SKILL.md.

**String Substitutions:**

- `$ARGUMENTS` - User-provided arguments
- `${CLAUDE_SESSION_ID}` - Current session ID

---

### Hooks

**Configuration Location:** `settings.json` under `hooks` key

**Available Hook Events:**
| Event | When | Matcher |
|-------|------|---------|
| `SessionStart` | Session begins | startup, resume, clear, compact |
| `UserPromptSubmit` | User submits prompt | - |
| `PreToolUse` | Before tool execution | Tool name |
| `PermissionRequest` | Permission dialog | Tool name |
| `PostToolUse` | After tool succeeds | Tool name |
| `PostToolUseFailure` | After tool fails | Tool name |
| `SubagentStart` | Subagent spawns | Agent type |
| `SubagentStop` | Subagent finishes | Agent type |
| `Stop` | Claude finishes | - |
| `PreCompact` | Before compaction | manual, auto |
| `SessionEnd` | Session terminates | - |

**Hook Configuration Structure:**

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/format.sh",
            "timeout": 30
          }
        ]
      }
    ]
  }
}
```

**Exit Codes:**

- `0`: Success (stdout shown in verbose mode)
- `2`: Blocking error (stderr fed back to Claude)
- Other: Non-blocking error

**Environment Variables:**

- `CLAUDE_PROJECT_DIR`: Project root path
- `CLAUDE_ENV_FILE`: (SessionStart only) File for persisting env vars

---

### Agents (Subagents)

**Location:** `.claude/agents/<agent-name>.md` or `~/.claude/agents/`

**Built-in Agents:**

- `Explore`: Fast, read-only, uses Haiku
- `Plan`: Research for plan mode, inherits model
- `general-purpose`: Full tools, complex tasks

**Frontmatter Fields:**
| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Unique identifier |
| `description` | Yes | When to delegate |
| `tools` | No | Allowed tools (inherits all if omitted) |
| `disallowedTools` | No | Tools to deny |
| `model` | No | `sonnet`, `opus`, `haiku`, or `inherit` |
| `permissionMode` | No | `default`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` |
| `skills` | No | Skills to preload |
| `hooks` | No | Lifecycle hooks |

**Example Agent:**

```yaml
---
name: code-reviewer
description: Expert code review. Use proactively after code changes.
tools: Read, Grep, Glob, Bash
model: sonnet
---

You are a senior code reviewer ensuring high standards.

When invoked:
1. Run git diff to see changes
2. Focus on modified files
3. Review for quality, security, performance

Provide feedback by priority:
- Critical (must fix)
- Warnings (should fix)
- Suggestions (consider)
```

---

### Settings

**File Locations (precedence highest to lowest):**

1. **Managed**: System-level `managed-settings.json`
2. **CLI arguments**: Session overrides
3. **Local project**: `.claude/settings.local.json`
4. **Project**: `.claude/settings.json`
5. **User**: `~/.claude/settings.json`

**Key Settings:**
| Key | Description |
|-----|-------------|
| `permissions` | Allow/deny/ask rules for tools |
| `hooks` | Hook configurations |
| `env` | Environment variables |
| `model` | Default model override |
| `attribution` | Git commit/PR attribution |
| `mcpServers` | MCP server configurations |
| `enabledPlugins` | Plugin enable/disable |

**Permissions Example:**

```json
{
  "permissions": {
    "allow": ["Bash(npm run lint)", "Bash(npm run test:*)"],
    "deny": ["Bash(curl:*)", "Read(./.env)"],
    "additionalDirectories": ["../docs/"]
  }
}
```

---

### MCP Servers

**Adding Servers:**

```bash
# HTTP transport (recommended for remote)
claude mcp add --transport http <name> <url>

# SSE transport (deprecated)
claude mcp add --transport sse <name> <url>

# Stdio transport (local)
claude mcp add --transport stdio <name> -- <command> [args...]
```

**Scopes:**

- `local` (default): Current project, private
- `project`: Shared via `.mcp.json`
- `user`: All your projects

**Example .mcp.json:**

```json
{
  "mcpServers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    },
    "db": {
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DB_URL}"]
    }
  }
}
```

**Commands:**

- `claude mcp list` - List servers
- `claude mcp get <name>` - Get details
- `claude mcp remove <name>` - Remove server
- `/mcp` - Check status (in Claude Code)

---

### Plugins

**Plugin Structure:**

```
my-plugin/
├── .claude-plugin/
│   └── plugin.json      # Required manifest
├── skills/              # Skills with SKILL.md
├── agents/              # Agent definitions
├── hooks/
│   └── hooks.json       # Hook configs
└── .mcp.json            # MCP servers
```

**plugin.json Manifest:**

```json
{
  "name": "my-plugin",
  "description": "Plugin description",
  "version": "1.0.0",
  "author": { "name": "Your Name" }
}
```

**Testing Plugins:**

```bash
claude --plugin-dir ./my-plugin
```

**Installing from Marketplace:**

```
/plugin install <plugin-name>@<marketplace>
```

---

## Workflow

### Step 1: Fetch Fresh Documentation

For the requested topic, fetch from https://code.claude.com/docs/en/<topic>:

**For memory:**

- WebFetch https://code.claude.com/docs/en/memory
- WebFetch https://code.claude.com/docs/en/best-practices

**For skills:**

- WebFetch https://code.claude.com/docs/en/skills

**For hooks:**

- WebFetch https://code.claude.com/docs/en/hooks
- WebFetch https://code.claude.com/docs/en/hooks-guide

**For agents:**

- WebFetch https://code.claude.com/docs/en/sub-agents

**For settings:**

- WebFetch https://code.claude.com/docs/en/settings

**For mcp:**

- WebFetch https://code.claude.com/docs/en/mcp

**For plugins:**

- WebFetch https://code.claude.com/docs/en/plugins
- WebFetch https://code.claude.com/docs/en/plugin-marketplaces

**For cli:**

- WebFetch https://code.claude.com/docs/en/cli-reference

**For overview:**

- WebFetch https://code.claude.com/docs/en/features-overview

### Step 2: Read Current Configuration

**For memory:**

- Read ~/.claude/CLAUDE.md
- Read ./CLAUDE.md
- Read ./CLAUDE.local.md
- Glob .claude/rules/\*.md

**For skills:**

- Glob .claude/skills/\*/SKILL.md
- Read each skill file

**For hooks:**

- Read ~/.claude/settings.json (hooks section)
- Read .claude/settings.json
- Read .claude/settings.local.json

**For agents:**

- Glob ~/.claude/agents/\*.md
- Glob .claude/agents/\*.md

**For settings:**

- Read ~/.claude/settings.json
- Read .claude/settings.json
- Read .claude/settings.local.json

**For mcp:**

- Read settings.json mcpServers section
- Read .mcp.json

**For plugins:**

- Read .claude/plugins/ directory

### Step 3: Compare & Recommend

- Identify differences from documentation best practices
- Note deprecated patterns
- Suggest improvements
- Highlight missing recommended configurations

### Step 4: Apply Updates

Ask user which recommendations to apply, then:

- Edit existing config files
- Create new config files if needed
- Validate changes

## Notes

- Documentation is fetched fresh each time for up-to-date guidance
- No changes made without user approval
- Respects existing patterns while suggesting improvements

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.