| name | agent-onboarding |
| version | 1.1.2 |
| description | This skill should be used when the user asks to "create a new agent", "onboard a new agent", "add an agent to the team", "deploy a new bot", "register an agent with Paperclip", or "add this agent to the roster". Provides the complete end-to-end checklist for bringing a new agent onto the bOpen team — design, write, avatar, plugin, Paperclip registration, roster, and optional ClawNet bot deployment. |
Agent Onboarding
End-to-end checklist for bringing a new agent onto the bOpen team. Work through each phase in order. Do not skip steps.
Plugin repo: ~/code/prompts (core on the marketplace)
Pushing to master IS publishing — the marketplace picks up the latest commit automatically.
Phase 1: Design the Agent
Before writing a single file, define the agent's identity.
Phase 2: Write the Agent File
Authored Claude Code agent definitions live directly at the top level:
agents/
{name}.md (authored source of truth)
bots/
{name}.bot.json (optional ClawNet deployment metadata)
Do not create a folder/symlink package for a normal plugin agent. Runtime bot
workspaces under .agents/ and canonical bot templates belong to their runtime
systems, not to the authored agent definition.
Creating the agent file
touch agents/{name}.md
Frontmatter format
---
name: agent-name
display_name: "Display Name"
version: 1.0.0
model: sonnet
description: One-sentence description of what this agent does and when to route to it.
tools: Read, Write, Edit, Bash, Grep, Glob, WebFetch, Skill(core:relevant-skill)
color: blue
---
System prompt structure
Write the body in this order:
- Role statement — "You are a [domain] specialist." One sentence.
- Mission — What you ship/produce. One sentence.
- Self-announcement block — Copy from an existing agent and update the version and specialization. Every agent announces itself at task start.
- Expertise section — Bullet list of specific capabilities. Be concrete, not vague.
- Key documentation — WebFetch URLs or file references the agent should consult. Embedding these prevents the agent from doing unnecessary research from scratch.
- Delegation rules — Explicit list of what this agent does NOT handle and which agent to route to instead.
- Output standards — File format, code style, testing expectations.
Key documentation to include
Every agent should have at least one concrete documentation reference. Examples:
- nextjs:
https://nextjs.org/docs, https://sdk.vercel.ai/docs
- database:
https://docs.convex.dev, Bun SQL docs
- mcp:
~/code/prompts/agents/mcp.md (read the existing Orbit agent for patterns)
Look at existing agents in ~/code/prompts/agents/ for reference. The mcp.md, database.md, and agent-builder.md agents are good structural examples.
Phase 3: Generate an Avatar
Every agent needs a portrait avatar.
Generate the avatar in the bopen-ai repository using the documented pixel-avatar
workflow. The filename is derived from display_name: lowercase it, replace each
non-alphanumeric run with -, then append .png.
Prompt template:
Stardew Valley retro 16-bit pixel art character portrait. Dark maroon background
(#2b120a), steel blue (#8cb4cb) and amber (#e38f1a) accent colors. Head and
shoulders portrait, expressive pixel face, no text. [Agent-specific traits.]
Specs:
- Size: 1024x1024
- Format: PNG
- Save to:
~/code/bopen-ai/public/images/agents/{display-name-slug}.png
- Record the exact prompt in
~/code/bopen-ai/public/images/agents/prompts.json
ClawNet ICO (optional)
If the agent will run as a live ClawNet bot, follow the bot runtime's current icon
contract separately; do not add runtime icons to this plugin's agents/ directory.
Phase 4: Update the Plugin
cd ~/code/prompts
git add agents/{name}.md .claude-plugin/plugin.json skills/deploy-agent-team/references/agent-roster.md
git commit -m "Add {name} agent with avatar"
git push
Phase 5: Update bOpen.ai Roster
Phase 6: Register in Paperclip (When Applicable)
If the agent will run inside bOpen's Paperclip instance (paperclip.bopen.io), register it there. Paperclip is the control plane — it manages heartbeats, budgets, task assignment, and org hierarchy.
Paperclip agent model
Paperclip agents are NOT the same as Claude Code plugin agents. Key differences:
| Concern | Claude Code Plugin | Paperclip |
|---|
| Identity | .md file in plugin repo | DB record via API/UI |
| Personality/prompt | Body of .md file | Prompt template or instructionsFilePath |
| Hierarchy | Flat peers | Strict tree (reportsTo) |
| Budget | None | budgetMonthlyCents with auto-pause at 100% |
| Execution | On-demand subagent | Heartbeat protocol (scheduled wakes) |
| Roles | Freeform | 12 fixed: ceo, cto, cmo, cfo, security, engineer, designer, pm, qa, devops, researcher, general |
Registration via Paperclip UI
- Navigate to the Agents page, click "Create Agent"
- Agent name — use the display_name from the
.md file (e.g., "Martha", "Jerry")
- Adapter type —
Claude Code for all bOpen agents running Claude
- Working directory —
/paperclip/.agents/{slug} where {slug} is the name from the agent .md frontmatter (e.g., code-auditor). On Railway persistent volume.
- Model — match the
model: field from the .md frontmatter (sonnet → Claude Sonnet, opus → Claude Opus)
- Role — map to the closest Paperclip enum. Use
title field for the actual job description
- Reports to — select the agent's manager in the org tree
- Budget — set monthly spend limit in cents. Guidelines:
- Opus agents: $50/month (5000 cents)
- Sonnet agents: $20/month (2000 cents)
- Haiku agents: $5/month (500 cents)
- CEO/CTO: higher budgets as needed
- Capabilities — paste the
description: from the .md frontmatter
- Environment check — click "Test now" to verify adapter, API key, and working directory
Role mapping guide
| bOpen Agent Type | Paperclip Role | Title (freeform) |
|---|
| CEO / strategist | ceo | Chief Executive Officer |
| Engineering lead | cto | Chief Technology Officer |
| Directory/routing | cmo | Front Desk / Directory Service |
| Financial oversight | cfo | Chief Financial Officer |
| Most specialists | engineer | [Actual specialty] Specialist |
| UI/UX agents | designer | UI/UX Designer |
| Project coordinators | pm | Project Manager |
| Testing | qa | [Tester] |
| Security/auditing | security | [Code Auditor / Security Ops] |
| Infra/CI/CD | devops | Infrastructure Lead |
| Research agents | researcher | Lead Researcher |
| Everything else | general | [Actual role description] |
Heartbeat protocol awareness
Agents running in Paperclip must follow the heartbeat protocol defined in the Paperclip skill (see Quick Reference table for path). Reference that skill in the agent's system prompt or install it in their working directory.
Dual-ecosystem agents
Most bOpen agents exist in BOTH ecosystems:
- Claude Code plugin: personality, system prompt, tools, skills (source of truth)
- Paperclip: runtime config, hierarchy, budget, heartbeat scheduling
The .md file in the plugin repo is always the source of truth for who the agent IS. Paperclip owns HOW it runs (schedule, budget, reporting chain). Never duplicate the system prompt — reference it or paste it into Paperclip's prompt template field.
Environment requirements
For Paperclip on Railway:
ANTHROPIC_API_KEY must be set as Railway env var
- Working directories on
/paperclip/ volume persist across deploys
- First Claude Code invocation is slow (cold start) — environment check may timeout but still works
- Agents run as
node user via gosu entrypoint (not root)
Phase 7: Deploy as ClawNet Bot (Optional)
Only if the agent needs a live, always-on bot instance (e.g., a 24/7 support agent, a monitoring bot).
Johnny handles: uptime monitoring, reconnects, key rotation, and ClawNet-specific debugging.
Phase 8: Notify Martha
After any new agent is deployed:
Phase 9: Verify
Quick Reference
| Item | Location |
|---|
| Agent files | ~/code/prompts/agents/{name}.md |
| Avatars | ~/code/bopen-ai/public/images/agents/{display-name-slug}.png |
| Plugin manifest | ~/code/prompts/.claude-plugin/plugin.json |
| Agent roster | ~/code/prompts/skills/deploy-agent-team/references/agent-roster.md |
| ClawNet core | ~/code/clawnet |
| ClawNet bot runner | ~/code/clawnet-bot |
| Bot maintenance | Johnny (clawnet-bot:clawnet-mechanic) |
| Routing updates | Martha (core:front-desk) |
| Avatar prompts | ~/code/bopen-ai/public/images/agents/prompts.json |
| Paperclip instance | https://paperclip.bopen.io |
| Paperclip repo | ~/code/paperclip (b-open-io/paperclip) |
| Paperclip skill | ~/code/paperclip/skills/paperclip/SKILL.md |
| Tortuga plugin | ~/code/tortuga-plugin (@bopen-io/tortuga-plugin) |
| Agent working dirs | /paperclip/.agents/{slug} (Railway volume) |