From agent-creator
Scaffolds Claude Code agent-based plugins with a guided workflow. Use when the user asks to "create an agent", "generate an agent plugin", "scaffold an agent", "add an agent to my plugin", "build a new agent", or "make a sub-agent". Covers agent frontmatter, tool selection, system prompt generation, and file creation. Does NOT review existing agents or audit agent quality.
npx claudepluginhub shawn-sandy/agentics --plugin agent-creatorThis skill uses the workspace's default tool permissions.
Walks users through a structured workflow to scaffold a complete Claude Code agent — either as a new plugin or added to an existing one. Produces ready-to-use agent `.md` files with frontmatter and system prompt.
Writes articles, guides, blog posts, tutorials, and newsletters in a voice from examples or brand guidance. For polished long-form content with structure, pacing, and credibility.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Executes repo commands, inspects git state, debugs CI failures, and pushes narrow fixes with exact proof of execution and verification. Use for command runs, repo checks, or evidence-based changes.
Walks users through a structured workflow to scaffold a complete Claude Code agent — either as a new plugin or added to an existing one. Produces ready-to-use agent .md files with frontmatter and system prompt.
Follow these steps exactly.
Ask the user whether they want to create a new plugin with an agent or add an agent to an existing plugin. Use AskUserQuestion with these options:
If the user selects "new plugin", confirm the target directory:
"I'll create the plugin at
plugins/[plugin-name]/. Should I proceed?"
If no .claude-plugin/ directory would exist at the target, inform the user that one will be created and ask for confirmation before proceeding.
If the user selects "add to existing", ask which plugin to target. Then:
Glob to check for an existing agents/ directory in the target pluginagents/ exists, use Glob to list existing agent files (agents/*.md)Ask the user up to 4 questions using AskUserQuestion to understand what agent they want to build. Tailor questions to what the user has already provided — skip questions they have already answered.
Questions to consider (pick the most relevant):
references/agent-schema.md:
After gathering answers, summarize:
**Agent concept:**
- Purpose: [what it does]
- Trigger: [when it's invoked]
- Tool preset: [preset name] + [any customizations]
- Output: [what the user gets]
Generate the agent frontmatter using the requirements from Step 2 and the schema in references/agent-schema.md.
Required fields first (always generate):
---
name: [agent-name]
description: [agent-description with trigger phrases]
---
Name rules:
anthropic or claude as substringDescription rules:
Then offer optional fields via progressive disclosure:
After presenting the required fields, ask the user if they want to configure advanced options using AskUserQuestion with multiSelect: true:
Only add fields the user explicitly selects. Present the complete frontmatter for confirmation before proceeding.
After the user confirms the frontmatter, generate all files. This step combines system prompt drafting with file generation — the prompt is written directly into the agent file.
Generate a structured system prompt for the agent body using this template:
## Role
[1-2 sentences defining who the agent is and what it specializes in]
## Behavior
- [Bullet points describing how the agent should act]
- [Include tone, verbosity, and interaction style]
## Workflow
1. [Numbered steps the agent follows]
2. [Each step should be a concrete action]
3. [Include tool usage where relevant]
## Output Format
[Describe what the agent produces — report format, file structure, summary style]
## Scope Boundaries
- **In scope:** [what the agent handles]
- **Out of scope:** [what the agent does NOT handle — redirect to other tools/agents]
Fill in the template based on the requirements gathered in Step 2. Each section should be specific to the agent being created, not generic.
For new plugins:
.claude-plugin/plugin.json with plugin metadataagents/[agent-name].md with frontmatter + system promptCHANGELOG.md with initial v1.0.0 entryFor adding to existing plugins:
agents/ directory if it doesn't existagents/[agent-name].md with frontmatter + system promptCHANGELOG.md with the new agent entry (create if missing)Before writing files, confirm:
"I'll generate the following files at
[path]:
[list of files]Should I proceed?"
After generating files, run these validation checks:
anthropic or claudetools is set, verify every entry is from the allowed tools list (see references/agent-schema.md Full Access preset)tools and disallowedTools are not both setmodel is set, verify it's one of: sonnet, opus, haiku, inheritpermissionMode is set, verify it's one of: default, acceptEdits, bypassPermissions, planMode, inherit.claude-plugin/plugin.json exists and contains required fields (name, version, description)Present a validation summary:
## Validation Results
- [PASS/FAIL] Agent name: [name]
- [PASS/FAIL] Description length: [length]/1024
- [PASS/FAIL] Tools: [list or "default (all)"]
- [PASS/FAIL] YAML frontmatter: valid/invalid
- [PASS/FAIL] Plugin.json: present/missing
- [PASS/FAIL] Agent body: [sections found]
If any checks fail, fix the issues automatically and re-validate.
This step is conditional — only offer it when a marketplace.json file exists.
Glob to check for .claude-plugin/marketplace.json in the project rootIf the user confirms:
marketplace.jsonplugins array:
{
"name": "[plugin-name]",
"source": "./plugins/[plugin-name]",
"version": "1.0.0",
"description": "[plugin description from plugin.json]",
"category": "development",
"tags": ["agents", "relevant-tags"]
}
version in the marketplace entry matches the version in plugin.json exactlymarketplace.jsonAfter all steps complete, present a final summary:
## Agent Created
**Location:** `[path]/agents/[agent-name].md`
**Plugin:** `[plugin-name]` v[version]
**Tools:** [preset name] ([tool count] tools)
**Model:** [model or "inherit"]
**Files created/modified:**
- [list of files with line counts]
**Next steps:**
1. Load the plugin: `claude --plugin-dir [plugin-path]`
2. Test by asking Claude something that matches the trigger description
3. Review and refine the system prompt as needed