## Claude ### Skills Load only when relevant, can include executable code and reference files, ideal for substantial, reusable knowledge that spans projects, such as data warehouse schemas, company design standards, or domain expertise. | Field | Required | Description | | ------------- | -------- | ----------- | | `name` | Yes | | | `description` | Yes | | - `Help me create a data warehouse skill. I'll walk you through our tables and business logic, and you can help me structure it properly.` - Marketplaces - [Claude Skills Marketplace](https://skillsmp.com/) - Resources - [anthropic/skills](https://github.com/anthropics/skills) - [Skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices) - Examples - [Git commit helper SKILL](https://github.com/davila7/claude-code-templates/blob/main/cli-tool/components/skills/development/git-commit-helper/SKILL.md) ### Subagents | Field | Required | Description | | ---------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `name` | Yes | Unique identifier using lowercase letters and hyphens | | `description` | Yes | Natural language description of the subagent’s purpose | | `tools` | No | Comma-separated list of specific tools. If omitted, inherits all tools from the main thread | | `model` | No | Model to use for this subagent. Can be a model alias (`sonnet`, `opus`, `haiku`) or `'inherit'` to use the main conversation’s model. If omitted, defaults to the [configured subagent model](https://code.claude.com/docs/en/model-config) | | `permissionMode` | No | Permission mode for the subagent. Valid values: `default`, `acceptEdits`, `bypassPermissions`, `plan`, `ignore`. Controls how the subagent handles permission requests | | `skills` | No | Comma-separated list of skill names to auto-load when the subagent starts. Skills are loaded into the subagent’s context automatically | - [Subagents Docs](https://code.claude.com/docs/en/sub-agents) ### Agents Autonomous subprocesses handling multi-step tasks independently, built as markdown files with YAML frontmatter. Place in `plugin-name/agents/` directory for auto-discovery. | Field | Required | Description | | ------------- | -------- | ------------------------------------------------------------------------------- | | `name` | Yes | Agent identifier (3-50 characters, lowercase with hyphens only) | | `description` | Yes | Triggering conditions with 2-4 concrete scenarios using examples and commentary | | `model` | Yes | `inherit` (recommended), `sonnet`, `opus`, or `haiku` | | `color` | Yes | Visual UI identifier: blue, cyan, green, yellow, magenta, red | | `tools` | No | Array of allowed tools. Default: all tools available | - [Agent Development Skill](https://github.com/anthropics/claude-code/tree/main/plugins/plugin-dev/skills/agent-development) - System Prompt Design - `Write in second person addressing the agent directly. Include role/specialization, core responsibilities, analysis process, quality standards, output format, and edge case handling.Recommended length: 500-3,000 characters.` ### CLAUDE.md project-specific guidance (coding conventions, local workflows, common commands) ### Slash Commands Allow you to define quick, frequently used prompts. | Frontmatter | Purpose | Default | | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | | `allowed-tools` | List of tools the command can use | Inherits from the conversation | | `argument-hint` | The arguments expected for the slash command. Example: `argument-hint: add [tagId] \| remove [tagId] \| list`. This hint is shown to the user when auto-completing the slash command. | None | | `description` | Brief description of the command | Uses the first line from the prompt | | `model` | Specific model string (see [Models overview](https://docs.claude.com/en/docs/about-claude/models/overview)) | Inherits from the conversation | | `disable-model-invocation` | Whether to prevent `SlashCommand` tool from calling this command | false | - [Slash commands Docs](https://code.claude.com/docs/en/slash-commands#slash-commands) - [Command Development Skill](https://claude-plugins.dev/skills/@anthropics/claude-code/command-development) #### Skills Vs Agents | Aspect | Slash Commands | Agent Skills | | -------------- | -------------------------------- | ----------------------------------- | | **Complexity** | Simple prompts | Complex capabilities | | **Structure** | Single .md file | Directory with SKILL.md + resources | | **Discovery** | Explicit invocation (`/command`) | Automatic (based on context) | | **Files** | One file only | Multiple files, scripts, templates | | **Scope** | Project or personal | Project or personal | | **Sharing** | Via git | Via git | ### Hooks A hook is a custom shell command that you create to execute automatically when a targeted event occurs in your Claude Code session. Use to eliminate repetitive manual steps, enforce project-specific rules automatically, inject dynamic content without manual effort. - [Hooks reference Docs](https://code.claude.com/docs/en/hooks)s - [Hook development SKILL](https://github.com/anthropics/claude-code/blob/main/plugins/plugin-dev/skills/hook-development/SKILL.md) - [How to configure hooks](https://claude.com/blog/how-to-configure-hooks) ### Plugins - [Claude Code Plugins Marketplace](https://claude-plugins.dev/) - [Plugin marketplaces Docs](https://code.claude.com/docs/en/plugin-marketplaces) -