npx claudepluginhub nathanvale/side-quest-marketplace-old --plugin plugin-templateplugin-nameclaude-sonnet-4-5-20250929/createCreates a new beads issue interactively or via title, type (bug/feature/task/epic/chore/decision), and priority args. Uses beads MCP create tool, shows ID/details, offers linking.
/createLaunches Socratic subagent to create orchestration workflows interactively from natural language descriptions. Accepts optional initial description. Deprecated.
/createCreates a new scaffold template in .scaffold/<name> with scaffold.yaml config, Go template files for project or template scaffolds, and validates via lint and dry-run generation.
/createCreates a workspace directory with git worktrees for multi-repository development. Parses description for GitHub PRs, JIRA keys, and repos; sets up feature branches or PR checkouts.
/createAnalyzes project state (git, Node.js, Python, Rust, Go) and creates 9 baseline Markdown context files in .claude/context/ for structure, tech, progress, vision, and more.
/createCreates a new NotebookLM notebook via CLI with given title and optional sources (URLs, files, YouTube, PDFs, etc.). Reports notebook ID and added sources.
Generate a new plugin scaffold with configurable components following the SideQuest marketplace patterns.
You are a plugin scaffolding specialist. Create well-structured Claude Code plugins using the established patterns.
The plugin name is provided as $1 (or $ARGUMENTS).
Plugin name must be in kebab-case format:
my-plugin, code-analyzer, git-helperCheck for conflicts:
plugins/{name} directory doesn't already existUse AskUserQuestion to ask the user which components to include:
Question: "Which components should this plugin include?"
| Component | Description |
|---|---|
| commands | Slash commands (e.g., /plugin:action) |
| mcp-server | MCP server with tools for Claude to call |
| hooks | Event hooks (PostToolUse, PreToolUse, etc.) |
| skills | Autonomous capabilities Claude can invoke |
Enable multi-select. Default to all components if user doesn't specify.
Use AskUserQuestion to ask about implementation type:
Question: "What implementation type?"
| Type | Description |
|---|---|
| Markdown only | Commands/skills are just prompts, no code (stub scripts) |
| TypeScript | Includes CLI tools, utilities, or testable logic (full scripts + src/) |
Auto-select TypeScript if mcp-server component was chosen (MCP always needs code).
Based on selections, create:
MARKDOWN ONLY: TYPESCRIPT:
plugins/{name}/ plugins/{name}/
├── .claude-plugin/ ├── .claude-plugin/
│ └── plugin.json │ └── plugin.json
├── package.json ←(stubs) ├── package.json ←(full)
├── commands/ ├── tsconfig.json
│ └── sample.md ├── src/
└── skills/ │ ├── index.ts
└── {name}/ │ └── index.test.ts
└── SKILL.md ├── commands/
│ └── sample.md
└── skills/
└── {name}/
└── SKILL.md
Markdown only (stub scripts):
{
"scripts": {
"test": "echo 'No tests'",
"typecheck": "echo 'No typecheck'"
}
}
TypeScript (full scripts):
{
"scripts": {
"test": "bun test --recursive",
"typecheck": "tsc --noEmit",
"format": "biome format --write .",
"lint": "biome lint .",
"check": "biome check --write ."
},
"devDependencies": {
"@types/bun": "latest"
}
}
Default to git config:
git config user.namegit config user.emailUse templates from $PLUGIN_DIR/src/templates.ts:
packageJsonForType() based on implementation typemcpez library${CLAUDE_PLUGIN_ROOT}After generating files, update .claude-plugin/marketplace.json:
plugins array:
{
"name": "{name}",
"source": "./plugins/{name}",
"description": "{description}",
"version": "1.0.0",
"author": { "name": "{author}" },
"category": "development",
"keywords": ["{name}"]
}
After creating the plugin:
Run setup commands (TypeScript only):
cd plugins/{name} && bun install
Verify generation (TypeScript only):
bun test --recursive
Output summary:
/plugin-template:strip if they want to remove TypeScript later/plugin-template:upgrade if they want to add TypeScript laterUser: /plugin-template:create my-awesome-plugin
Expected flow:
${CLAUDE_PLUGIN_ROOT} for portabilityNow create the plugin scaffold based on the provided name and user preferences.