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
- Author
- matteotitta ↗
- Repository
- genesys-skills ↗
- Licence
- MIT
- Last repository change
- 14.10.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 0
No signals detected. Repository changed on 14.10.2026, without references to retired models or APIs.
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
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
- Claude Code triggers
- Inputs
- Process
- Verification
- After completing work
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…