Skip to content
Back to skills

Create

ASecurity

Create plugin components (commands, skills, hooks, agents, prompts) interactively

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 8, 2026
toolsshellbash

Works with

  • claude code
  • mcp

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill create --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Create?

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

Security grade badge for Create
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-create/badge)](https://www.skillsdirectory.com/skills/majiayu000-create)

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: create
description: Create plugin components (commands, skills, hooks, agents, prompts) interactively
allowed-tools: [Read, Write, Edit, Glob, Grep, AskUserQuestion, Bash, Task]
---

# Create Plugin Component

Scaffold plugin components through iterative interviews. Works with any Claude Code plugin.

## Expert Consultation

**Always consult the `claude-code-guide` agent** when:

- Designing hook logic (exit codes, matchers, event types)
- Choosing between component types (skill vs agent vs hook)
- Validating generated content against best practices
- User asks questions about Claude Code features

```yaml
task:
  subagent_type: claude-code-guide
  prompt: |
    User is creating a <component_type> named <name>.

    Validate this design against Claude Code best practices:
    - <design details>

    Flag any anti-patterns or suggest improvements.
```

## Context

!`ls .claude-plugin/plugin.json 2>/dev/null && echo "Plugin detected" || echo "No plugin detected - will create in current directory"`

## Plugin Root Detection

Detect the target plugin directory:

1. If `$CLAUDE_PLUGIN_ROOT` set, use it
2. If `.claude-plugin/plugin.json` exists, use current directory
3. Otherwise, ask user for target path or create new plugin structure

## Phase 1: Component Type

Parse argument if provided (`/create command`, `/create skill`, etc.).

If no argument or argument not recognized:

```yaml
question: "What type of component do you want to create?"
header: "Component"
options:
  - label: "Command"
    description: "Slash command entry point (/plugin:name)"
  - label: "Skill"
    description: "Reusable workflow or knowledge"
  - label: "Hook"
    description: "Event-driven automation script"
  - label: "Agent"
    description: "Autonomous subagent definition"
  - label: "Prompt"
    description: "MCP prompt template with arguments"
multiSelect: false
```

## Phase 2: Type-Specific Interview

Based on component type, follow the detailed reference:

| Type | Reference |
|------|-----------|
| Command | [references/command-creation.md](references/command-creation.md) |
| Skill | [references/skill-creation.md](references/skill-creation.md) |
| Hook | [references/hook-creation.md](references/hook-creation.md) |
| Agent | [references/agent-creation.md](references/agent-creation.md) |
| Prompt | [references/prompt-creation.md](references/prompt-creation.md) |

## Phase 2.5: Entity Scan

Before finalizing, scan all existing Claude entities for conflicts and integration opportunities.

### Checklist

- [ ] **Naming conflicts**: Check all entity locations for the chosen name
- [ ] **Related components**: Find similar functionality for cross-referencing
- [ ] **Hook opportunities**: Identify potential integrations
- [ ] **Expert consultation**: If conflicts or complex integrations found

### Check for Naming Conflicts

Use Glob to check for existing entities with the same name:

1. `Glob("commands/<name>.md")` - Existing command
2. `Glob("skills/<name>/SKILL.md")` - Existing skill
3. `Glob("hooks/<name>.sh")` - Existing hook script
4. `Glob("agents/<name>.md")` - Existing agent
5. `Glob("prompts/<name>.md")` - Existing prompt

Also check `hooks/hooks.json` for hook registrations using the same name pattern.

### Find Related Components

Use Grep to find related functionality by keywords from the new component's name/description:

1. `Grep(pattern: "<keywords>", path: "commands/")` - Related commands
2. `Grep(pattern: "<keywords>", path: "skills/")` - Related skills
3. `Grep(pattern: "<keywords>", path: "hooks/")` - Related hooks
4. `Grep(pattern: "<keywords>", path: "agents/")` - Related agents

### Integration Analysis

Based on component type being created:

**If creating command/skill:**

- Check if existing hooks could enhance it (e.g., PostToolUse notifications)
- Identify commands that should reference this in their docs

**If creating hook:**

- Identify commands/skills it should integrate with
- Check for related hooks that might conflict

**If conflicts or complex integrations found:**

- Consult claude-code-guide for naming conventions and resolution

### Output

Report findings to user before Phase 3 confirmation:

```text
## Entity Scan Results

✓ No naming conflicts (or ⚠ Conflicts: <list>)

**Related Components** (if any):
- commands/foo.md - Similar functionality [REVIEW]
- hooks/bar.sh - Could trigger after this command [CONSIDER]

**Integration Suggestions**:
- Reference this from related-command.md
- Consider PostToolUse hook for notifications
```

## Phase 3: Expert Review & Confirmation

**For hooks**: Before showing preview, consult claude-code-guide to validate:

- Exit code usage (0=allow, 2=block)
- Defensive stdin pattern
- stop_hook_active check for Stop hooks
- Proper use of ${CLAUDE_PLUGIN_ROOT}

Before writing files, show preview:

```text
## Component Preview

**Type**: <type>
**Name**: <name>
**Files to create**:
- <file 1>
- <file 2>

### Content Preview

<show generated content>

Proceed with creation?
```

```yaml
question: "Create this component?"
header: "Confirm"
options:
  - label: "Yes, create it"
    description: "Write files and complete setup"
  - label: "Edit first"
    description: "Make changes before creating"
  - label: "Cancel"
    description: "Don't create anything"
multiSelect: false
```

## Phase 4: Write Files

1. Create necessary directories
2. Write component files
3. For hooks: update hooks.json
4. For command hooks: make script executable

## Constraints

- **Consult claude-code-guide**: For hooks and complex components, spawn the expert agent to validate design
- **Detect plugin root**: Use `$CLAUDE_PLUGIN_ROOT` or `.claude-plugin/plugin.json`
- **Safe file creation**: Never overwrite without asking
- **Valid names**: Enforce kebab-case for all names
- **Executable hooks**: `chmod +x` for shell scripts
- **hooks.json merge**: Preserve existing hooks when adding new ones
- **Best practices**: Use defensive stdin pattern, proper exit codes, ${CLAUDE_PLUGIN_ROOT} paths

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.