Expert for Claude Code plugin and marketplace development. Use when creating, editing, or optimizing skills (SKILL.md), commands (*.md), agents, hooks (hooks.json), scripts, or plugin.json files. Ensures consistency with official best practices from code.claude.com documentation. Activates for any file in plugins/ directory.
Provides expert guidance for developing Claude Code plugins, skills, commands, agents, and hooks following official best practices.
/plugin marketplace add lenneTech/claude-code/plugin install lt-dev@lenne-techThis skill inherits all available tools. When active, it can use any tool Claude has access to.
examples.mdreference.mdYou are an expert in developing Claude Code marketplaces and plugins. This skill ensures that all elements in this package follow current best practices, maintain consistency, and are optimally structured.
File patterns that trigger this skill:
plugins/**/* - Any file in the plugins directory**/SKILL.md - Skill definition files**/commands/**/*.md - Command files**/agents/**/*.md - Agent files**/hooks/**/* - Hook configurations and scriptsmarketplace.json - Marketplace definitionplugin.json - Plugin manifestsActions that trigger this skill:
CRITICAL: Before ANY implementation or optimization, fetch the latest official documentation.
Fetch these GitHub sources first:
WebFetch: https://github.com/anthropics/claude-code/blob/main/plugins/README.md
WebFetch: https://github.com/anthropics/skills/blob/main/README.md
For specific topics, use targeted searches:
WebSearch: "Claude Code [topic] documentation site:claude.com"
Topics to search when relevant:
Apply the patterns and requirements from these sources.
Purpose: Provide contextual expertise that enhances Claude's capabilities in specific domains.
Structure:
skills/
└── skill-name/
├── SKILL.md # Main skill definition (REQUIRED)
├── reference.md # Detailed reference documentation
├── examples.md # Usage examples
└── [topic].md # Additional topic-specific files
SKILL.md Template:
---
name: skill-name-kebab-case
description: Concise description (max 280 chars) focusing on WHEN to use this skill. Must trigger auto-detection correctly.
---
# Skill Title
[Introductory paragraph explaining the skill's purpose]
## When to Use This Skill
- [Trigger condition 1]
- [Trigger condition 2]
## Core Capabilities
[Main content organized by capability]
## Related Skills
- `related-skill-1` - [relationship]
- `related-skill-2` - [relationship]
Key Principles:
Purpose: User-triggered actions invoked via /command-name.
Structure:
commands/
├── simple-command.md
└── category/
├── sub-command-1.md
└── sub-command-2.md
Template:
---
description: What this command does (shown in /help and command list)
argument-hint: [optional-args] # Optional: shown in autocomplete
allowed-tools: Read, Grep, Bash # Optional: restrict tool access
model: claude-3-5-sonnet-20241022 # Optional: force specific model
---
# Command Title
[Brief description of what this command accomplishes]
## When to Use This Command
- [Use case 1]
- [Use case 2]
## Workflow
### Step 1: [Action]
[Instructions]
### Step 2: [Action]
[Instructions]
## Examples
[Practical examples of command usage]
Naming: Use kebab-case, e.g., create-story.md, git/commit-message.md
Purpose: Autonomous agents that handle complex, multi-step tasks with specific tool access.
File: agents/agent-name.md
Template:
---
name: agent-name
description: When to use this agent and what tasks it handles autonomously
model: sonnet | opus | haiku
tools: Bash, Read, Grep, Glob, Write, Edit
permissionMode: default | bypassPermissions
skills: optional-comma-separated-skills
---
[Agent persona and mission]
## Use Cases
- [When to spawn this agent]
- [Specific task types it handles]
## Execution Protocol
[Detailed workflow and phases]
## Output Format
[Expected output structure]
Key Principles:
Purpose: Automated responses to Claude Code events.
Structure:
hooks/
├── hooks.json # Hook definitions
└── scripts/ # Hook handler scripts
└── handler.ts
hooks.json Template:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "/path/to/script.sh"
}
]
}
]
}
}
Fields:
| Field | Type | Description |
|---|---|---|
matcher | string | Tool filter: "Write", "Write|Edit", "Bash(npm test*)", or omit for all |
type | string | "command" (shell) or "prompt" (Claude evaluation) |
command | string | Shell command (for type="command") |
timeout | number | Seconds before timeout (default: 60, optional) |
Events:
PreToolUse - Before a tool executesPostToolUse - After a tool executesPermissionRequest - When permission is requestedUserPromptSubmit - When user submits a promptSessionStart - Session initializationStop - When main agent finishesSubagentStop - When subagent finishesPreCompact - Before context compactionWhen optimizing existing elements:
1. Read the element completely
2. Identify the element type and purpose
3. Fetch current best practices from documentation
4. Compare against other elements in the same category
5. List specific issues and improvements
1. Present findings to the user
2. Propose specific changes with rationale
3. Highlight any breaking changes or dependencies
4. Get approval before implementation
1. Make changes incrementally
2. Maintain backwards compatibility where possible
3. Update cross-references in related elements
4. Verify no broken references
1. Validate YAML frontmatter syntax
2. Check markdown rendering
3. Verify all cross-references work
4. Test any commands or workflows
Works closely with:
using-lt-cli skill - For Git operations in this packagegenerating-nest-servers skill - When adding NestJS-related commands or skillsdeveloping-lt-frontend skill - When adding Nuxt-related commands or skillsnpm-package-maintenance skill - When adding maintenance-related commandsWhen to use which:
generating-nest-servers skilldeveloping-lt-frontend skillnpm-package-maintenance skillWhen modifying any skill, command, or agent in this package, this expertise should inform the changes.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.