{
  "markdown": "# create-claude-plugin\n\n<p align=\"center\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License\"></a>\n  <a href=\".claude-plugin/plugin.json\"><img src=\"https://img.shields.io/github/package-json/v/codyhxyz/create-claude-plugin?filename=.claude-plugin%2Fplugin.json&label=version\" alt=\"Version\"></a>\n  <a href=\"https://claude.com/product/claude-code\"><img src=\"https://img.shields.io/badge/built_for-Claude%20Code-d97706\" alt=\"Built for Claude Code\"></a>\n  <a href=\"https://github.com/codyhxyz/codyhxyz-plugins\"><img src=\"https://img.shields.io/badge/part_of-codyhxyz--plugins-ffd900?logo=github&logoColor=000\" alt=\"Part of codyhxyz-plugins\"></a>\n</p>\n\n> *A Claude plugin that ships Claude plugins. Yes, it's recursive. Someone had to do it.*\n\n<p align=\"center\">\n  <img src=\"assets/proof-of-value.png\" alt=\"create-claude-plugin — proof of value\" width=\"900\">\n</p>\n<p align=\"center\"><em>Eight phases, zero skipped — the skill walks each one before letting you hit submit.</em></p>\n\nOther plugin guides explain what plugins are. This one walks you from \"I have an idea\" to \"it's live in `claude-plugins-official`\" without leaving Claude Code. It validates, runs the local test loop, does the Cowork portability check, pushes to GitHub, and fills out the submission form. You handle the judgment (naming, scoping, what it should actually say). The skill handles the plumbing.\n\n## Before and after\n\nBefore: \"I have a skill in `~/.claude/` and no idea how to share it.\"\n\nAfter: plugin passes `claude plugin validate`, repo is live on GitHub, `/plugin marketplace add owner/repo` works in a fresh session, and the submission form is open in your browser with every field already on your clipboard. About 20 minutes.\n\n## What you get\n\n- A validated plugin that passes `claude plugin validate` and works in-session via `claude --plugin-dir`.\n- A live GitHub repo with topics, a verified install flow, and `gh repo create` already done.\n- A filled-in submission. Clipboard pre-loaded with every field the form asks for, browser opened to `claude.ai/settings/plugins/submit`, fields grouped by form page so you can paste and tab through.\n- An automated Cowork smoke test. Most toolkits stop at `claude plugin validate`. This one drives the Cowork desktop app for you: Claude Code's Computer Use installs your plugin, runs your test prompt, and screenshots errors. No manual clicking. (macOS plus Pro/Max only; there's a manual fallback otherwise.)\n- A generic repo-health check (linting, type checking, tests, pre-commit, security, docs) via `scripts/readiness.sh` — runs as a Phase 4.5 advisory scoring 20 criteria across 6 categories, with `scripts/readiness-fix.sh` available to scaffold missing configs (prettier/eslint/ruff/pre-commit/jest/pytest/`.env.example`/issue templates).\n\n### Two-layer validation\n\nThis plugin ships two orthogonal checks. **Layer 1 — generic repo health** (`scripts/readiness.sh`) scores any codebase on hygiene basics: linter config, formatter, type checking, tests, coverage, pre-commit hooks, `.gitignore`, `CODEOWNERS`, issue/PR templates. Non-blocking; advisory. **Layer 2 — marketplace-specific** (`scripts/check-submission.sh`) validates the 17 rules Anthropic's submission form enforces: manifest schema, naming, marketplace.json integrity, Cowork portability, marketing artifacts. Blocking. Run them together: readiness catches hygiene gaps; check-submission catches submission blockers. `check-submission.sh` also reports the readiness score as an informational line.\n\n## Examples\n\nExample 1. \"I have a code-review agent in `.claude/agents/` and I want to share it.\" The skill converts the agent file into a plugin layout, scaffolds `.claude-plugin/plugin.json` and `marketplace.json`, writes the README with install instructions, runs `claude plugin validate`, pushes to GitHub, and prints every submission field ready to paste.\n\nExample 2. \"Build me a plugin from scratch that bundles a skill and a PostToolUse hook.\" The skill picks the layout (skill at `skills/<name>/SKILL.md`, hook at `hooks/hooks.json`), inserts `${CLAUDE_PLUGIN_ROOT}` substitutions so the hook survives install, runs the local `claude --plugin-dir` test loop, then walks you through hosting and submission.\n\n## Install\n\n### Claude Code (recommended)\n\n```\n/plugin marketplace add codyhxyz/codyhxyz-plugins && /plugin install create-claude-plugin@codyhxyz-plugins\n```\n\nThe `plugin@marketplace` format is `<plugin-name>@<marketplace-name>`. `codyhxyz-plugins` is my meta-marketplace — one `add`, every plugin I ship.\n\nSee the full [codyhxyz-plugins marketplace](https://github.com/codyhxyz/codyhxyz-plugins) for my other plugins.\n\n### Manual install\n\n```bash\nmkdir -p ~/.claude/skills/create-claude-plugin\ngit clone https://github.com/codyhxyz/create-claude-plugin /tmp/ccp\ncp -r /tmp/ccp/skills/create-claude-plugin/* ~/.claude/skills/create-claude-plugin/\n```\n\n## Usage\n\nAsk Claude Code to make a plugin:\n\n> \"Help me make a Claude Code plugin out of this skill I have in my `.claude/` dir.\"\n\n> \"I want to publish my code-review agent to the official Claude marketplace.\"\n\n> \"Scaffold a new Claude plugin with a skill and a hook.\"\n\nThe skill activates on its own and walks through seven phases: decide, scaffold, build, test, document, host, submit.\n\n## Pre-flighting an existing plugin\n\nIf you already have a plugin and want to check whether it's submission-ready:\n\n```bash\n./scripts/check-submission.sh /path/to/your/plugin\n```\n\nWhat it does:\n1. Validates `plugin.json` has every field the submission form wants.\n2. Checks the name is kebab-case, not reserved, not impersonating something else, and not already taken in `claude-plugins-official`.\n3. Confirms your README has an `## Examples` section.\n4. Runs `claude plugin validate` if you have it installed.\n5. Copies every paste-ready field to your clipboard and opens the submission URL.\n\n## Why this exists\n\nMaking a Claude plugin is maybe 20% mechanics and 80% judgment plus distribution. The CLI handles the mechanics. The existing docs explain what plugins are. Nothing closed the gap between \"I have an idea\" and \"it's listed at `claude-plugins-official`, installable by anyone running `/plugin install`.\"\n\nSo: scripts where determinism matters, model where judgment matters. The script catches missing fields. The skill helps you figure out what those fields should say. Same shape as [create-chrome-extension](https://github.com/codyhxyz/create-chrome-extension).\n\n## Related\n\n- [create-chrome-extension](https://github.com/codyhxyz/create-chrome-extension) — same idea, Chrome Web Store instead of the Claude marketplace.\n- create-claude-plugin (you're here) — `~/.claude/` skill to `claude-plugins-official`.\n\n## Repository layout\n\n```\ncreate-claude-plugin/\n├── .claude-plugin/\n│   ├── plugin.json\n│   └── marketplace.json\n├── skills/\n│   └── create-claude-plugin/\n│       ├── SKILL.md                    # main orchestration skill\n│       ├── reference/                  # load on demand\n│       │   ├── plugin-manifest.md\n│       │   ├── marketplace-manifest.md\n│       │   ├── component-types.md\n│       │   ├── hosting-options.md\n│       │   └── submission-form.md\n│       ├── templates/                  # copy + fill in\n│       │   ├── plugin/                 # plugin.json, marketplace.json, README, LICENSE, CHANGELOG, .gitignore\n│       │   ├── skill/SKILL.md\n│       │   ├── agent/agent.md\n│       │   └── hook/hooks.json\n│       └── checklists/\n│           ├── pre-publish.md\n│           └── submission-ready.md\n├── scripts/\n│   └── check-submission.sh\n├── ARCHITECTURE.md\n├── README.md\n├── LICENSE\n├── CHANGELOG.md\n└── .gitignore\n```\n\n## Contributing\n\nIssues and PRs welcome. Stale doc links in the skill count as bugs.\n\n## License\n\n[MIT](LICENSE) © 2026 Cody Hergenroeder\n\n---\n\n<sub>Part of <a href=\"https://github.com/codyhxyz/codyhxyz-plugins\"><b>codyhxyz-plugins</b></a> 🍋 — my registry of Claude Code plugins.</sub>\n",
  "bytes": 7943,
  "sha": "e55f9645305186d7407578d210bf7e91bfb1f5976892c23c47c1bb3e6fd3b077",
  "repo_slug": "codyhxyz/create-claude-plugin",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_codyhxyz_create_claude_plugin_create_cla_d7bd80ee/readme"
}