From platform
Quick-reference for editing Claude Code skills, agents, slash commands, hooks, plugins, and configs. Triggers on YAML frontmatter, .claude/ files, Task tools, hook debugging.
How this skill is triggered — by the user, by Claude, or both
Slash command
/platform:claude-code-expertThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Comprehensive quick-reference for Claude Code extensibility. For detailed examples, see the reference files linked at the end.
Comprehensive quick-reference for Claude Code extensibility. For detailed examples, see the reference files linked at the end.
Do NOT use for: Creating NEW skills from scratch (use claude-creator instead), general coding tasks, or CI/CD unrelated to Claude Code.
| Type | Invocation | Purpose | Location |
|---|---|---|---|
| Skills | Auto (model-invoked) | Persistent context/knowledge | ~/.claude/skills/, .claude/skills/, <plugin>/skills/ |
| Agents | Explicit (@agent-name) | Multi-step workflows | .claude/agents/, <plugin>/agents/ |
| Commands | User (/command) | Saved prompts/shortcuts | ~/.claude/commands/, .claude/commands/, <plugin>/commands/ |
| Plugins | Package | Bundled distribution | .claude-plugin/plugin.json |
---
name: skill-name # Required: lowercase, hyphens, max 64 chars
description: This skill should be used when [triggers]. It provides [capabilities]. # Required: max 1024 chars
allowed-tools: Read, Grep, Glob # Optional: tool restrictions
context: fork # Optional: run in forked sub-agent
agent: my-agent # Optional: use agent's config
hooks: # Optional: component-scoped hooks
PreToolUse: [...]
PostToolUse: [...]
Stop: [...]
---
Skills hot-reload when modified. See references/skill-triggers.md for trigger optimization.
---
name: agent-name # Required: kebab-case, match filename
description: What agent does and when to use it. # Required
model: opus # Optional: sonnet, opus, haiku
color: blue # Optional: visual identifier
tools: Read, Grep, Glob, Bash # Optional: tool restrictions
hooks: # Optional: component-scoped hooks
PreToolUse: [...]
PostToolUse: [...]
Stop: [...]
---
Disable agents: "disallowed-tools": ["Task(agent-name)"] in settings.json.
---
description: Brief description for autocomplete # Optional
argument-hint: [file] [options] # Optional: shown in picker
model: opus # Optional: override model
allowed-tools: Bash(git *), Read, Grep # Optional: tool restrictions
disable-model-invocation: false # Optional: prevent Skill tool calling
hooks: # Optional: component-scoped hooks
PreToolUse: [...]
Stop: [...]
---
Special syntax: $ARGUMENTS, $1/$2, inline bash with exclamation prefix (requires allowed-tools), @path/file
See references/command-patterns.md for patterns and examples.
{
"name": "plugin-name",
"description": "What this plugin provides",
"version": "1.0.0",
"author": "Author Name"
}
Locations: settings.json (global) or frontmatter (component-scoped)
| Hook | Timing | Frontmatter | settings.json |
|---|---|---|---|
PreToolUse | Before tool runs | ✅ | ✅ |
PostToolUse | After tool completes | ✅ | ✅ |
Stop | When component/agent finishes | ✅ | ✅ |
UserPromptSubmit | When user sends message | ❌ | ✅ |
PermissionRequest | When permission requested | ❌ | ✅ |
SessionStart | Session starts/resumes | ❌ | ✅ |
SessionEnd | Session ends | ❌ | ✅ |
SubagentStart/Stop | Subagent lifecycle | ❌ | ✅ |
Notification | Notification sent | ❌ | ✅ |
PreCompact | Before context compact | ❌ | ✅ |
Matcher patterns: Bash(git commit:*), Write(*.py), Edit(src/**/*.ts), mcp__server_*, *
Hook options: matcher, command, once (run only once per session)
See references/hook-recipes.md for complete schemas and recipes.
Location: .claude/settings.json or ~/.claude/settings.json
| Setting | Description |
|---|---|
agent | Use agent's system prompt, tools, model for main thread |
language | Response language (e.g., "japanese") |
disallowed-tools | Disable tools: Task(AgentName), mcp__server_* |
CLI flags: --agent, --tools, --disable-slash-commands, --session-id, --system-prompt
CLAUDE.md: Project root or ~/.claude/CLAUDE.md. Keep concise (always loaded).
Rules directory: .claude/rules/*.md - modular alternative to single CLAUDE.md.
CRITICAL: Use imperative/infinitive form, not second person.
| ✅ Correct | ❌ Incorrect |
|---|---|
| "Identify candidate files..." | "You should identify..." |
| "Extract data from..." | "You can extract..." |
| Issue | Cause | Fix |
|---|---|---|
| Skill not triggering | Vague description, >1024 chars | Add specific trigger keywords |
| Hook not executing | Not executable, wrong path | chmod +x, use relative path from root |
| Agent not found | Name mismatch, wrong location | Match name to filename, check .claude/agents/ |
| Inline bash not working | Missing allowed-tools | Add allowed-tools: Bash(...) to frontmatter |
name, description)chmod +x)npx claudepluginhub closedloop-ai/claude-plugins --plugin platformKnowledge base on Claude Code formats, patterns, and configurations for commands, agents, skills, hooks, memory, plugins, settings. Use for creating, improving, auditing components.
Covers Claude Code artifact conventions: plugin.json schema, command/agent/skill frontmatter, CLAUDE.md, hooks, settings.json, LSP, monitors, memory files, and the built-in tool catalog.
Explains Claude Code internals: hooks, skills, headless mode, and debugging. Use when hooks don't fire, skills don't trigger, or you need to design an extension.