Skip to main content

create-plugin

This skill should be used when the user asks to "create a plugin", "make a GitHub plugin", "turn my repo into a plugin", "create a Claude Code plugin", "create a Codex plugin", "publish my skills as a plugin", or "set up a plugin marketplace". Scaffolds the complete file structure for a repo that works as both a Claude Code and Codex plugin with marketplace support.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
alexsmedile/hormozi-skills
آخر نشاط في المصدر
١٥ أبريل ٢٠٢٦ في ١٢:٢٢
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٧٤
التفرعات
٣٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
create-plugin
description
This skill should be used when the user asks to "create a plugin", "make a GitHub plugin", "turn my repo into a plugin", "create a Claude Code plugin", "create a Codex plugin", "publish my skills as a plugin", or "set up a plugin marketplace". Scaffolds the complete file structure for a repo that works as both a Claude Code and Codex plugin with marketplace support.
# Skill: Plugin Creator (Claude Code + Codex) ## Purpose Scaffold a GitHub repo that works as a plugin for both Claude Code and Codex simultaneously. Outputs ready-to-copy file contents and git commands for every required file. --- ## Step 1: Gather Inputs Ask the user these questions (all at once): 1. **Repo name** — kebab-case (e.g. `my-skills`) 2. **GitHub username or org** — (e.g. `alexsmedile`) 3. **Plugin description** — one sentence 4. **Author name** 5. **What does this plugin contain?** — pick all that apply: - Skills (`skills/`) - Agents (`agents/`) - Hooks (`hooks/hooks.json`) - MCP servers (`.mcp.json`) 6. **License** — default: `MIT` Do not proceed until you have at least: repo name, GitHub username, description, and author name. --- ## Step 2: Generate File Structure Show the full directory tree based on their selections, then output every file's content ready to copy. ### Always-required files #### `.claude-plugin/plugin.json` ```json { "name": "{{repo-name}}", "version": "1.0.0", "description": "{{description}}", "author": { "name": "{{author}}" }, "homepage": "https://github.com/{{username}}/{{repo-name}}", "repository": "https://github.com/{{username}}/{{repo-name}}", "license": "{{license}}", "keywords": [] } ``` > Skills and agents in `skills/` and `agents/` are auto-discovered — no paths needed in `plugin.json`. #### `.claude-plugin/marketplace.json` ```json { "name": "{{repo-name}}", "owner": { "name": "{{author}}" }, "metadata": { "description": "{{description}}", "version": "1.0.0" }, "plugins": [ { "name": "{{repo-name}}", "source": "./", "description": "{{description}}", "version": "1.0.0", "author": { "name": "{{author}}" }, "homepage": "https://github.com/{{username}}/{{repo-name}}", "repository": "https://github.com/{{username}}/{{repo-name}}", "license": "{{license}}", "category": "productivity" } ] } ``` #### `.codex-plugin/plugin.json` ```json { "name": "{{repo-name}}", "version": "1.0.0", "description": "{{description}}", "author": { "name": "{{author}}" }, "homepage": "https://github.com/{{username}}/{{repo-name}}", "repository": "https://github.com/{{username}}/{{repo-name}}", "license": "{{license}}", "skills": "./skills/" } ``` #### `.codex-plugin/marketplace.json` ```json { "name": "{{repo-name}}", "interface": { "displayName": "{{repo-name}}" }, "plugins": [ { "name": "{{repo-name}}", "source": { "source": "local", "path": "./" }, "category": "Productivity" } ] } ``` #### `.gitignore` ``` .DS_Store **/.DS_Store output/* !output/.gitkeep ``` #### `output/.gitkeep` Empty file — keeps the `output/` folder tracked by git. --- ### If skills selected: `skills/example-skill/SKILL.md` ```markdown --- name: example-skill description: Replace this description with specific trigger phrases. Use when the user asks to "..." --- # Skill: Example Describe what this skill does and how to use it. ``` > Rename `example-skill/` to your actual skill name. Skill is invoked as `/{{repo-name}}:example-skill`. --- ### If agents selected: `agents/example-agent.md` ```markdown --- name: example-agent description: Replace with what this agent does and when to invoke it. tools: Read, Write, Bash model: sonnet --- # Agent: Example Describe the agent's role, expertise, and behavior here. ``` > Rename to your actual agent name. --- ### If hooks selected: `hooks/hooks.json` ```json { "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "echo 'File changed'" } ] } ] } } ``` --- ### If MCP servers selected: `.mcp.json` ```json { "mcpServers": { "example-server": { "command": "${CLAUDE_PLUGIN_ROOT}/bin/server", "args": [] } } } ``` --- ## Step 3: Critical Rules State these clearly before the user creates any files: | Rule | Detail | |------|--------| | `skills/` and `agents/` at **repo root** | Never inside `.claude-plugin/` or `.codex-plugin/` | | Plugin name = skill namespace | Plugin `foo` → skills run as `/foo:skill-name` | | `plugin.json` is auto-discovery | No need to list `skills` or `agents` paths unless using custom locations | | Do NOT add `skills`/`agents` to `marketplace.json` | Causes schema validation error with default `strict: true` | | `source: "./"` in marketplace.json | Points at repo root — correct for single-plugin repos | --- ## Step 4: Git Setup + Install Commands Output these exactly, substituting the user's values: ```bash # Create repo (if not exists) gh repo create {{username}}/{{repo-name}} --public # Init and push git init git add . git commit -m "feat: initial plugin scaffold" git remote add origin https://github.com/{{username}}/{{repo-name}}.git git push -u origin main ``` **Install in Claude Code:** ``` /plugin marketplace add {{username}}/{{repo-name}} /plugin install {{repo-name}}@{{repo-name}} ``` **Reload after changes:** ``` /reload-plugins ``` **Test locally without installing:** ```bash claude --plugin-dir ./ ``` --- ## Step 5: After Install Skills are namespaced: `/{{repo-name}}:skill-name` Agents appear in `/agents` To update: push to GitHub, then `/plugin marketplace update {{repo-name}}` Bump `version` in `plugin.json` and `marketplace.json` with each release — Claude Code uses version to detect updates.
عرض على GitHub