create-agent
Use when the user wants to create a new agent teammate, scaffold a scheduled Claude persona, or asks to "create an agent", "new agent", "add an agent", "add a…
Skill by TerrysPOV
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/terryspov-create-agent
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/create-agent
What's inside
- Skill name
create-agent- Description
- Use when the user wants to create a new agent teammate, scaffold a scheduled Claude persona, or asks to "create an agent", "new agent", "add an agent", "add a job", "scheduled task", "scaffold an agent", "build an agent", "make an agent", or "/claudeclaw:create-agent". Trigger phrases include "I want an agent that", "create a teammate", "new agent persona", "scheduled claude agent".
- License
- MIT
- Instructions
- 189 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Create Agent
Wizard for scaffolding a new ClaudeClaw agent — a focused Claude persona with its own identity, soul, memory, session, and any number of scheduled jobs.
You are guiding the user through creating a teammate. Be conversational, warm, and direct. **Ask one question at a time.** Wait for the answer before moving on. **DO NOT dump all questions at once.** This is a wizard, not a form.
## Echo before asking
At the start of EVERY question after Q1, repeat the previously captured value back to the user so they know it landed. Format: `Got it — <field>: "<value>". Next: <next question>`. For multi-line values (workflow, personality), echo a 1-line summary like `Got it — workflow captured (NN words). Next: ...`.
## State persistence
After EACH answer is captured, write the full in-progress wizard state to `/tmp/claudeclaw-agent-wizard.json` via a `bun -e` snippet. Do NOT wait until scaffold time. If the network glitches or context resets, the next session can resume by reading this file. The snippet:
```js
const fs = await import("fs/promises");
await fs.writeFile("/tmp/claudeclaw-agent-wizard.json", JSON.stringify(state, null, 2));
```
## Tone
Match the vibe of `skills/create-skill/SKILL.md`: friendly, brief, opinionated. You're texting a friend who happens to be brilliant. No filler, no walls of text. Acknowledge each answer in a sentence or less, then move to the next question.
## The Questions
Ask these in order, one at a time.
### 1. Name (kebab-case)
Ask: "What should we call them? (kebab-case — lowercase, hyphens only, like `daily-digest` or `suzy-v2`)"
**Validate immediately.** Run this in a Bash tool call:
```bash
bun -e 'const {validateAgentName} = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`); console.log(JSON.stringify(validateAgentName("USER_INPUT")));'
```
If `valid: false`, tell the user the error in one line and re-ask. Common rejects: capitals (`Suzy`), spaces, starting with a digit, or the agent already existing.
### 2. Role (one line)
Ask: "What does this agent do? One line — what's their job?"
Free text. Goes into IDENTITY.md.
### 3. Personality (2–4 sentences)
Ask: "Who are they? Give me 2–4 sentences on their personality and vibe."
Free text. Becomes the Personality section of SOUL.md.
### 4. Workflow (multi-line)
Ask: "How does this agent operate? What are their guidelines, tone, do's and don'ts? This can be as long as you want — write it like a mini operating manual."
This is a **dedicated multi-line field**, separate from any schedule. It becomes the `## Workflow` block in SOUL.md. If the answer is gnarly or long, write it to a temp file (e.g. `/tmp/claudeclaw-agent-workflow.txt`) so escaping doesn't bite you later.
### 5. Discord channels
Ask: "Any Discord channels they should know about? Comma-separated (`#content,#research`) or `none`."
Parse comma-separated into an array. `none` → empty array.
### 6. Data sources
Ask: "What information sources do they pull from? (RSS feeds, APIs, files, websites — free text, or `none`)"
Free text.
### 7. Default model (optional)
Ask: "What model should this agent use by default? Options: `default` (daemon setting), `opus`, `sonnet`, `haiku`, `glm`. Individual jobs can still override this per-task."
If the user picks anything other than `default` (or presses enter), capture it as `defaultModel`. This becomes the agent's middle-tier fallback: job frontmatter `model:` wins, then this agent default, then the daemon setting.
### 8. Scheduled tasks (loop)
> **IMPORTANT — Jobs are LOCAL cron.** Scheduled tasks here are managed by ClaudeClaw's in-process cron loop (`src/jobs.ts` → `src/commands/start.ts setInterval`). They are NOT the remote `schedule` skill (which uses cloud triggers like Vercel cron). Do NOT invoke the `schedule` skill from this wizard. All job files live at `agents/<name>/jobs/<label>.md` with `schedule:` frontmatter and are loaded by `loadJobs()` on the running daemon.
Ask: "Want to add a scheduled task? (y/n)"
If `n`, skip to scaffold. If `y`, run this loop until the user is done:
**Single-job workflow reuse:** If the user provided a non-empty Workflow (Q4) AND this is the first scheduled task AND the user does not add a second task, do NOT ask for a trigger prompt for this job. Default the trigger prompt to the literal string `Run the workflow defined in SOUL.md`. Then ask: `Want to override the trigger prompt for this job? (y/n, default n)`. Only prompt for a custom trigger if the user answers `y`.
Multi-job agents (2+ scheduled tasks) still need per-job trigger prompts as before — different jobs do different things.
For each task:
1. **Label** — "Label for this task? (kebab-case, e.g. `digest-scan`, `morning-brief`)". Validate via:
```bash
bun -e 'const {validateJobLabel} = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`); console.log(JSON.stringify(validateJobLabel("USER_INPUT")));'
```
2. **When** — "When should it run? Natural language (`every weekday at 9am`, `daily at 6pm`, `every 4 hours`) or raw cron." Validate via:
```bash
bun -e 'const {parseScheduleToCron} = await import(`${process.env.CLAUDECLAW_ROOT || "."}/src/agents.ts`); console.log(parseScheduleToCron("USER_INPUT"));'
```
If `null`, re-ask with examples.
3. **Recurring or one-shot** — "Should this fire on every schedule tick, or just once?"
- Use **AskUserQuestion** with options: `Recurring (cron)` (default) and `One-shot (fire once, then clear schedule)`.
- Set `recurring: true` for `Recurring`, `recurring: false` for `One-shot`.
- **Why this matters:** `src/jobs.ts:clearJobSchedule()` strips the `schedule:` line on the first fire of any job without `recurring: true`, converting it to a one-shot. A wizard job that the user expects to recur (the common case) MUST be written with `recurring: true` or it silently becomes a one-shot after the first run. Setting this explicitly is the fix for the silent-strip footgun.
4. **Trigger prompt** — "What should the agent do when this fires? (multi-line ok — write to a temp file if helpful)"
5. **Model** — "Which model? (`default` / `opus` / `haiku` — press enter for default)"
Then: "Add another task? (y/n)" — loop or break out.
## Review before scaffolding
Print a complete review of every captured answer (name, role, personality summary, workflow word count, discord channels, data sources, and each scheduled task with its label/cron/trigger). Then ask: `Scaffold this agent? (y/n, or 'edit <field>' to amend)`. If the user types `edit <field>`, jump back to that question; if `y`, proceed; if `n`, abort and unlink the temp state file.
## Scaffold
Once all answers are in and the user confirmed the review block, **write them to a temp JSON file** to keep escaping sane, then call the helpers in one shot. Mirror Phase 16's temp-file pattern.
```bash
# 1. Write the collected wizard state (use the Write tool for the temp file).
# /tmp/claudeclaw-agent-wizard.json shape:
# {From TerrysPOV/ClaudeClaw-Plus, MIT.
More from TerrysPOV/ClaudeClaw-Plus
- 0.551score
update-agent
TerrysPOV
Use when the user wants to modify an existing agent — change personality, workflow, add or edit a scheduled job, update Discord channels, swap a job's model…
SkillCFreshness: C★ 17Claude Code +9 - 0.542score
mcp
TerrysPOV
Manage the ClaudeClaw-Plus MCP bridge — register plugins, monitor health, audit invocations, debug cross-process calls, generate plugin templates.
SkillCFreshness: C★ 17Claude Code +9
Signals
- Stars
- 17
- Forks
- 8
- Open issues
- 21
- Last commit (this folder)
- May 14, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/TerrysPOV/ClaudeClaw-Plus
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from TerrysPOV
- 0.551score
update-agent
TerrysPOV
Use when the user wants to modify an existing agent — change personality, workflow, add or edit a scheduled job, update Discord channels, swap a job's model…
SkillCFreshness: C★ 17Claude Code +9 - 0.542score
mcp
TerrysPOV
Manage the ClaudeClaw-Plus MCP bridge — register plugins, monitor health, audit invocations, debug cross-process calls, generate plugin templates.
SkillCFreshness: C★ 17Claude Code +9
Cite this page
create-agent skill. Agent Mart. https://agentmart.dev/skills/terryspov-create-agent (last updated 2026-10-24)