Skip to content
Skills Library
AI & agents · Building & coding

plugin-scaffold

/plugin-scaffold

Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition''s skills list. Produces the canonical bundle layout (.claude-plugin/plugin.json, settings.json with default agent, agents/, commands/, skills/ as symlinks to canonical sources in.claude/skills/, README, examples/). Use when creating a new personal plugin bundle in projects/apps/genesys-plugins/ or promoting an existing agent into a distributable plugin. Triggers: "scaffold a plugin", "create a bundle", "package [agent-name] as a plugin", "new plugin bundle". NOT for editing canonical ski

Licence
MIT
Last repository change
14.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
1
Scripts
0
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 14.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What it does and when to use it

Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition''s skills list. Produces the canonical bundle layout (.claude-plugin/plugin.json, settings.json with default agent, agents/, commands/, skills/ as symlinks to canonical sources in.claude/skills/, README, examples/). Use when creating a new personal plugin bundle in projects/apps/genesys-plugins/ or promoting an existing agent into a distributable plugin. Triggers: "scaffold a plugin", "create a bundle", "package [agent-name] as a plugin", "new plugin bundle". NOT for editing canonical ski

Triggers from the description

scaffold a plugincreate a bundlepackage [agent-name] as a pluginnew plugin bundle
Original author description

Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition''s skills list. Produces the canonical bundle layout (.claude-plugin/plugin.json, settings.json with default agent, agents/, commands/, skills/ as symlinks to canonical sources in.claude/skills/, README, examples/). Use when creating a new personal plugin bundle in projects/apps/genesys-plugins/ or promoting an existing agent into a distributable plugin. Triggers: "scaffold a plugin", "create a bundle", "package [agent-name] as a plugin", "new plugin bundle". NOT for editing canonical ski

How it works

  1. Claude Code triggers
  2. Inputs
  3. Process
  4. Verification
  5. After completing work
Original SKILL.md headings · 97 lines, 556 words
SKILL.md preview
---
name: plugin-scaffold
version: '1.0'
last_updated: 2026-04-19
author: genesys-growth
description: 'Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition''s
  skills list. Produces the canonical bundle layout (.claude-plugin/plugin.json, settings.json with default agent, agents/,
  commands/, skills/ as symlinks to canonical sources in.claude/skills/, README, examples/). Use when creating a new personal
  plugin bundle in projects/apps/genesys-plugins/ or promoting an existing agent into a distributable plugin. Triggers: "scaffold
  a plugin", "create a bundle", "package [agent-name] as a plugin", "new plugin bundle". NOT for editing canonical skills
  — that stays in.claude/skills/. NOT for publishing to a marketplace — use a separate publish step.'
goal: Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition's skills
  list.
outcome: Scaffolds a Claude Code / Cowork plugin bundle from a short YAML spec or from an existing agent definition's skills
  list. Produces the canonical bundle layout (.claude-plugin/plugin.json, settings.json with default agent, agents/, commands/,
  skills/ as symlinks to canonical sources in...
primitive: meta
sub_primitive: infra
ontology_type: runbook
review_gate: 0
inputs:
  required: []
  recommended: []
- type: runbook
  feeds_into: []
depends_on: []
owned_by_agent: operator
mcps_used: []
- gdrive
- notion
triggers:
  slash_commands: []
  natural_language: []
status: draft
locked_by: null
locked_date: null
lock_version: null
sources_count: 0
effort: low
---

# /plugin-scaffold — Scaffold a plugin bundle

Generates a fresh plugin bundle under `projects/apps/genesys-plugins/bundles/{bundle-name}/` following the canonical Claude Code plugin format. Symlinks skills from `.claude/skills/` so the bundle stays in sync with canonical sources.

---

## Claude Code triggers

**Invoke when user says:**
- "scaffold a plugin for [agent/workflow]"
- "create a new bundle"
- "package [agent-name] as a plugin"
- "bundle these skills together:..."
- "new plugin bundle: [name]"

**Do NOT invoke when:**
- User wants to edit a skill (canonical sources stay in `.claude/skills/` — edit there)
- User wants to publish a bundle to a public marketplace (that's a separate publish step)
- User is asking about the Claude Code plugin *format* in general (answer from context, don't scaffold)

---

## Inputs

The skill accepts a bundle spec in one of two forms:

### Form 1 — Inline spec

```yaml
bundle: linkedin-engine
description: "Personal LinkedIn content engine. Voice memo or thought → drafted post on brand in 60s."
agent: social-marketer # defaults to bundle name if omitted
author: genesys-growth
version: "0.1.0"
skills:
  - content-skills/linkedin-skills/linkedin-hooks
  - content-skills/linkedin-skills/linkedin-expert-posts
  - content-skills/linkedin-skills/linkedin-personal-posts
  # … add more paths relative to.claude/skills/
commands:
  - name: draft-from-thought
    description: "Turn a raw thought into a voice-checked LinkedIn post."
  - name: weekly-batch
    description: "Run the weekly content batch."
cowork_ready: true # false if any skill or MCP is local-only
resale_candidate: true # leave true so a future voice-scrub fork stays on the table
```

### Form 2 — From an existing agent

If the user says "package the social-marketer agent as a plugin", read `.claude/agents/{agent-name}.md`. The frontmatter already has a `skills:` list — use it. Prompt the user for bundle name + description only.

---

## Process

1. **Validate inputs** — bundle name kebab-case, all listed skill paths exist under `.claude/skills/`, target folder doesn't already exist (else ask to overwrite).
2. **Create folder structure**:
   ```
   projects/apps/genesys-plugins/bundles/{bundle}/
   ├──.claude-plugin/plugin.json
   ├── settings.json
   ├── README.md
   ├── agents/{agent}.md (copy + adapt from.claude/agents/{agent}.md)
   ├── commands/{each}.md
   ├── skills/ (symlinks to.claude/skills/...)
   └── examples/ (empty placeholder + README)
   ```
3. **Render `plugin.json`** from the premium reference using the spec.
4. **Render `settings.json`** with `"agent": "{agent}"` as the default.
5. **Copy + adapt the agent definition** from `.claude/agents/{agent}.md`. Keep the body. Strip the `skills:` frontmatter (Cowork doesn't read it the same way). Add a short "Bundle context" section referencing the plugin name.
6. **Create symlinks** for each skill: `ln -s {absolute-path-to-.claude-skill} skills/{skill-name}`. Use absolute paths so symlinks survive bundle moves.
7. **Stub each command** under `commands/` with a frontmatter + description. Leave the body as a TODO marker for the user to fill with the opinionated chain.
8. **Render `README.md`** from the premium reference with the bundle name, description, skill list, and install command.
9. **Update the top-level `projects/apps/genesys-plugins/marketplace.json`** to include the new bundle.
10. **Report** the created paths and a 1-line install command the user can run to test the bundle locally.

---

## Verification

- `plugin.json` parses as valid JSON (run `python3 -c "import json; json.load(open('path/to/plugin.json'))"`).
- All symlinks resolve (`ls -la bundles/{bundle}/skills/` shows no broken links).
- `marketplace.json` includes the new bundle entry.
- `README.md` renders correctly (no unresolved template variables like `{{bundle}}`).

---

## After completing work

Suggest the user:
1. Fill in the body of each stubbed command under `commands/`.
2. Seed `examples/` with 2-3 real outputs for in-context reference.
3. Test locally: `/plugin install file:///Users/matteotittarelli/Desktop/CORE/WORK/CLAUDE\ CODE/projects/apps/genesys-plugins {bundle-name}`.

Versions

The database has no other skills named plugin-scaffold.

Database snapshot: 13.11.2026 · package version c66e2a2bff62 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100claude-code-plugin-development
    This skill should be used when the user asks to "create a plugin", "build a plugin", "write a plugin", or wants to bundle agents, hooks, commands, skills, or MCP servers into a distributable Claude Code plugin.
  • 100create-cowork-plugin
    Guide users through creating a new plugin from scratch in a cowork session. Use when users want to create a plugin, build a plugin, make a new plugin, develop a plugin, scaffold a plugin, start a plugin from scratch, or design a plugin. This skill requires Cowork mode with…
  • 100plugin-structure
    Lay out, scaffold, package and install a Navin plugin (plugin.json manifest, skills/, agents/, commands/, hooks/hooks.json, mcp.json, ${NAVIN_PLUGIN_ROOT}). Use when the user asks to "create a plugin", "scaffold a plugin", "package these skills as a plugin", "set up…
  • 100plugin-creator
    Interactive tool to scaffold a Claude Code plugin with plugin.json, skills, agents, workflows, hooks, MCP servers, and an optional marketplace entry. Use when asked to create a plugin, convert .claude/ configuration into a plugin, or package skills and agents for distribution.
  • 90Claude Code Plugin Builder
    Creates Claude Code plugins with proper manifest structure, directory layout, and components (commands, agents, skills, hooks, MCP servers). This is for Claude Code plugins (`.claude-plugin/plugin.json`) — for Codex plugins (`.codex-plugin/plugin.json`) use the `plugin-creator`…
  • 100plugin-structure
    This skill should be used when the user asks to "create a plugin", "scaffold a plugin", "understand plugin structure", "organize plugin components", "set up plugin.json", "use ${CLAUDE_PLUGIN_ROOT}", "add commands/agents/skills/hooks", "configure auto-discovery", or needs…

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.