create

Create a new plugin for Claude Code marketplace with validation, ADR, and release automation. TRIGGERS - create plugin, new plugin, scaffold plugin, add plugin, plugin-dev create.

29 stars

Best use case

create is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create a new plugin for Claude Code marketplace with validation, ADR, and release automation. TRIGGERS - create plugin, new plugin, scaffold plugin, add plugin, plugin-dev create.

Teams using create should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/create/SKILL.md --create-dirs "https://raw.githubusercontent.com/terrylica/cc-skills/main/plugins/plugin-dev/skills/create/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/create/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How create Compares

Feature / AgentcreateStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create a new plugin for Claude Code marketplace with validation, ADR, and release automation. TRIGGERS - create plugin, new plugin, scaffold plugin, add plugin, plugin-dev create.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

<!-- ⛔⛔⛔ MANDATORY: READ THIS ENTIRE FILE BEFORE ANY ACTION ⛔⛔⛔ -->

# ⛔ Create Plugin — STOP AND READ

**DO NOT ACT ON ASSUMPTIONS. Read this file first.**

This is a structured workflow command for creating a new plugin in a Claude Code marketplace.

Your FIRST and ONLY action right now: **Execute the TodoWrite below.**

> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

## ⛔ MANDATORY FIRST ACTION: TodoWrite Initialization

**YOUR FIRST ACTION MUST BE the TodoWrite call below.**

DO NOT:

- ❌ Create any directories before TodoWrite
- ❌ Read marketplace.json before TodoWrite
- ❌ Ask questions before TodoWrite
- ❌ Jump to any phase without completing Step 0

### Step 0.1: Detect Marketplace Root

Before executing TodoWrite, verify you're in a marketplace directory:

```bash
/usr/bin/env bash << 'PREFLIGHT_EOF'
# Check for marketplace.json in cwd
if [ -f ".claude-plugin/marketplace.json" ]; then
  echo "✅ Marketplace detected: $(jq -r .name .claude-plugin/marketplace.json)"
else
  echo "❌ Not a marketplace directory. Run from a marketplace root."
  exit 1
fi
PREFLIGHT_EOF
```

### Step 0.2: Execute MANDATORY TodoWrite

**Execute TodoWrite NOW with this template:**

```
TodoWrite with todos:

- "[Plugin] Phase 0: Detect marketplace root" | in_progress
- "[Plugin] Phase 0: Interactive prompts (name, category, components)" | pending
- "[Plugin] Phase 0: Confirm plugin doesn't exist" | pending
- "[Plugin] Phase 1: Skill → plugin-structure (scaffold)" | pending
- "[Plugin] Phase 1: Create plugin directory + plugin.json" | pending
- "[Plugin] Phase 1: Skill → implement-plan-preflight (ADR)" | pending
- "[Plugin] Phase 2: Skill → skill-architecture (if has-skills)" | pending
- "[Plugin] Phase 2: Skill → hook-development (if has-hooks)" | pending
- "[Plugin] Phase 2: Skill → command-development (if has-commands)" | pending
- "[Plugin] Phase 2: Skill → agent-development (if has-agents)" | pending
- "[Plugin] Phase 2: Agent → skill-reviewer (if skills created)" | pending
- "[Plugin] Phase 3: Add to marketplace.json" | pending
- "[Plugin] Phase 3: Run validate-plugins.mjs" | pending
- "[Plugin] Phase 3: Skill → code-hardcode-audit" | pending
- "[Plugin] Phase 3: Agent → plugin-validator" | pending
- "[Plugin] Phase 4: Git commit (conventional format)" | pending
- "[Plugin] Phase 4: Push to remote" | pending
- "[Plugin] Phase 4: Skill → semantic-release" | pending
```

**After TodoWrite completes, proceed to Phase 0 section below.**

---

## Quick Reference

### Skills Invoked (Optimized Sequence)

| Order | Skill                    | Phase | Purpose                           | Invocation                              |
| ----- | ------------------------ | ----- | --------------------------------- | --------------------------------------- |
| 1     | plugin-structure         | 1     | Directory & manifest              | `Skill(plugin-dev:plugin-structure)`    |
| 2     | implement-plan-preflight | 1     | ADR + Design Spec + Diagrams      | `Skill(itp:implement-plan-preflight)`   |
| 3     | skill-architecture       | 2     | Create skills (if has-skills)     | `Skill(plugin-dev:skill-architecture)`  |
| 4     | hook-development         | 2     | Create hooks (if has-hooks)       | `Skill(plugin-dev:hook-development)`    |
| 5     | command-development      | 2     | Create commands (if has-commands) | `Skill(plugin-dev:command-development)` |
| 6     | agent-development        | 2     | Create agents (if has-agents)     | `Skill(plugin-dev:agent-development)`   |
| 7     | code-hardcode-audit      | 3     | Quality audit                     | `Skill(itp:code-hardcode-audit)`        |
| 8     | plugin-validator         | 3     | Silent failure audit              | `Skill(plugin-dev:plugin-validator)`    |
| 9     | run-full-release         | 4     | Run repo's mise release pipeline  | `Skill(mise:run-full-release)`          |

### Skills EXCLUDED (Redundant)

| Skill                        | Reason Excluded                                        |
| ---------------------------- | ------------------------------------------------------ |
| plugin-dev:skill-development | Use skill-architecture instead (3x more comprehensive) |
| plugin-dev:plugin-settings   | Merged into hook-development                           |
| itp:adr-graph-easy-architect | Invoked BY implement-plan-preflight (not separately)   |

### Agents Spawned

| Phase | Agent            | Purpose                  | Invocation                          |
| ----- | ---------------- | ------------------------ | ----------------------------------- |
| 2     | skill-reviewer   | Review skill quality     | `Task(plugin-dev:skill-reviewer)`   |
| 3     | plugin-validator | Validate final structure | `Task(plugin-dev:plugin-validator)` |

### File Locations

| Artifact         | Path                                    | Notes                      |
| ---------------- | --------------------------------------- | -------------------------- |
| Plugin Directory | `plugins/{name}/`                       | Main plugin folder         |
| Plugin Manifest  | `plugins/{name}/plugin.json`            | Required manifest          |
| Plugin README    | `plugins/{name}/README.md`              | Documentation              |
| Marketplace JSON | `.claude-plugin/marketplace.json`       | Must add plugin entry      |
| ADR              | `docs/adr/YYYY-MM-DD-{name}.md`         | Created by preflight skill |
| Design Spec      | `docs/design/YYYY-MM-DD-{name}/spec.md` | Created by preflight skill |

---

## Phase 0: Discovery & Validation

Detect marketplace root, gather plugin name/category/components via interactive prompts, confirm the plugin does not already exist.

**Detailed steps**: [Phase 0 Reference](./references/phase0-discovery.md)

### Phase 0 Gate

- [ ] Marketplace root detected (`.claude-plugin/marketplace.json` exists)
- [ ] Plugin name collected (kebab-case, no spaces)
- [ ] Category selected
- [ ] Components selected (skills/hooks/commands/agents)
- [ ] Plugin directory does NOT exist
- [ ] Plugin NOT in marketplace.json

---

## Phase 1: Scaffold Plugin

1. **Invoke `Skill(plugin-dev:plugin-structure)`** -- directory & manifest patterns
2. **Create plugin directory** with component subdirs based on user selections
3. **Generate `plugin.json`** using marketplace version
4. **Invoke `Skill(itp:implement-plan-preflight)`** -- creates ADR + Design Spec + diagrams

**Detailed steps**: [Phase 1 Reference](./references/phase1-scaffold.md)

### Phase 1 Gate

- [ ] Plugin directory exists: `plugins/$PLUGIN_NAME/`
- [ ] plugin.json created with marketplace version
- [ ] ADR exists: `docs/adr/$ADR_ID.md`
- [ ] Design spec exists: `docs/design/$ADR_ID/spec.md`
- [ ] Both diagrams in ADR (Before/After + Architecture)

---

## Phase 2: Component Creation (Conditional)

Execute ONLY the skills for components the user selected:

| Component | Skill Invocation                        | Then                                    |
| --------- | --------------------------------------- | --------------------------------------- |
| Skills    | `Skill(plugin-dev:skill-architecture)`  | Spawn `Task(plugin-dev:skill-reviewer)` |
| Hooks     | `Skill(plugin-dev:hook-development)`    | --                                      |
| Commands  | `Skill(plugin-dev:command-development)` | --                                      |
| Agents    | `Skill(plugin-dev:agent-development)`   | --                                      |

**Detailed steps**: [Phase 2 Reference](./references/phase2-components.md)

### Phase 2 Gate

- [ ] All selected components created
- [ ] If skills: skill-reviewer agent completed review
- [ ] Files follow plugin-dev patterns

---

## Phase 3: Registration & Validation

1. **Add plugin to `marketplace.json`** (include `hooks` field if hooks exist)
2. **Run `node scripts/validate-plugins.mjs`** -- expect all-pass
3. **Invoke `Skill(itp:code-hardcode-audit)`** -- quality audit
4. **Run silent failure audit** on all hook entry points
5. **Spawn `Task(plugin-dev:plugin-validator)`** -- structural validation

**Detailed steps**: [Phase 3 Reference](./references/phase3-validation.md)

### Phase 3 Gate

- [ ] Plugin added to marketplace.json
- [ ] validate-plugins.mjs passes
- [ ] code-hardcode-audit passes
- [ ] silent-failure-audit passes (no errors)
- [ ] plugin-validator agent approves

---

## Phase 4: Commit & Release

1. **Stage changes**: plugin dir, marketplace.json, ADR, design spec
2. **Conventional commit**: `feat($PLUGIN_NAME): add plugin for [brief description]`
3. **Push to remote**
4. **Invoke `Skill(mise:run-full-release)`** -- run repo's mise release pipeline for tag, changelog, GitHub release

**Detailed steps**: [Phase 4 Reference](./references/phase4-release.md)

### Phase 4 Success Criteria

- [ ] All changes committed with conventional commit
- [ ] Pushed to remote
- [ ] semantic-release completed
- [ ] New version tag created
- [ ] GitHub release published

## Troubleshooting

See [Troubleshooting Reference](./references/troubleshooting.md) for common issues and fixes.

## Post-Execution Reflection

After this skill completes, reflect before closing the task:

0. **Locate yourself.** — Find this SKILL.md's canonical path (Glob for this skill's name) before editing. All corrections target THIS file and its sibling references/ — never other documentation.
1. **What failed?** — Fix the instruction that caused it. If it could recur, add it as an anti-pattern.
2. **What worked better than expected?** — Promote it to recommended practice. Document why.
3. **What drifted?** — Any script, reference, or external dependency that no longer matches reality gets fixed now.
4. **Log it.** — Every change gets an evolution-log entry with trigger, fix, and evidence.

Do NOT defer. The next invocation inherits whatever you leave behind.

---

---

Related Skills

create-group

29
from terrylica/cc-skills

Use when user wants to create a new Telegram group, supergroup, or channel, optionally inviting members on creation.

issue-create

29
from terrylica/cc-skills

Create well-formatted GitHub issues with intelligent AI-powered label suggestions and content type detection. Use whenever the user wants to create a bug report, feature request, question, or documentation issue on GitHub, or says 'file an issue', 'create an issue', or 'gh issue create'. Do NOT use for managing existing issues, organizing issue hierarchies (use issues-workflow instead), or for PR creation.

voice-quality-audition

29
from terrylica/cc-skills

Audition Kokoro TTS voices to compare quality and grade. TRIGGERS - audition voices, kokoro voices, voice comparison, tts voice, voice quality, compare voices.

settings-and-tuning

29
from terrylica/cc-skills

Configure TTS voices, speed, timeouts, queue depth, and bot settings. TRIGGERS - configure tts, change voice, tts speed, queue depth, tts timeout, bot config, tune settings, adjust parameters.

full-stack-bootstrap

29
from terrylica/cc-skills

One-time bootstrap for Kokoro TTS engine, Telegram bot, and BotFather setup. TRIGGERS - setup tts, install kokoro, botfather, bootstrap tts-tg-sync, configure telegram bot, full stack setup.

diagnostic-issue-resolver

29
from terrylica/cc-skills

Diagnose and resolve TTS and Telegram bot issues. TRIGGERS - tts not working, bot not responding, kokoro error, audio not playing, lock stuck, telegram bot troubleshoot, diagnose issue.

component-version-upgrade

29
from terrylica/cc-skills

Upgrade Kokoro model, bot dependencies, or TTS components. TRIGGERS - upgrade kokoro, update model, upgrade bot, update dependencies, version bump, component update.

clean-component-removal

29
from terrylica/cc-skills

Remove TTS and Telegram sync components cleanly. TRIGGERS - uninstall tts, remove telegram bot, uninstall kokoro, clean tts, teardown, component removal.

send-message

29
from terrylica/cc-skills

Use when user wants to send a text message on Telegram as their personal account via MTProto, text someone, or message a contact by username, phone, or chat ID.

send-media

29
from terrylica/cc-skills

Use when user wants to send or upload a file, photo, video, voice note, or document on Telegram via their personal account.

search-messages

29
from terrylica/cc-skills

Use when user wants to search for messages across all Telegram chats or within a specific chat, find old messages by text, or look up Telegram message history filtered by sender.

pin-message

29
from terrylica/cc-skills

Use when user wants to pin or unpin a message in a Telegram chat, group, or channel, or manage pinned messages.