skills/agent-onboarding/SKILL.md
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.
npx skillsauth add b-open-io/prompts agent-onboardingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 (bopen-tools on the marketplace)
Pushing to master IS publishing — the marketplace picks up the latest commit automatically.
Before writing a single file, define the agent's identity.
code-auditor, front-desk). This becomes the filename and the subagent_type suffix.sonnet for most tasks; opus for complex reasoning, security, or architecture review.tools: field get full MCP access. Agents with tools: only see what's listed, so be complete.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.
touch agents/{name}.md
---
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(bopen-tools:relevant-skill)
color: blue
---
Write the body in this order:
Every agent should have at least one concrete documentation reference. Examples:
https://nextjs.org/docs, https://sdk.vercel.ai/docshttps://docs.convex.dev, Bun SQL docs~/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.
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:
~/code/bopen-ai/public/images/agents/{display-name-slug}.png~/code/bopen-ai/public/images/agents/prompts.jsonIf 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.
~/code/prompts/.claude-plugin/plugin.json1.0.86 → 1.0.87)plugin.json for bopen-tools — the plugin auto-discovers agent .md files from the agents/ directory. No manual registration needed.~/code/prompts/skills/deploy-agent-team/references/agent-roster.md — add a row to the roster table with the new agent's subagent_type, model, and best-for summary..md, plugin.json, agent-roster.md, and optional bots/*.bot.jsonprompts.json in the separate bopen-ai repositoryAdd {name} agent with avatarcd ~/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
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 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 |
.md file (e.g., "Martha", "Jerry")Claude Code for all bOpen agents running Claude/paperclip/.agents/{slug} where {slug} is the name from the agent .md frontmatter (e.g., code-auditor). On Railway persistent volume.model: field from the .md frontmatter (sonnet → Claude Sonnet, opus → Claude Opus)title field for the actual job descriptiondescription: from the .md frontmatter| 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] |
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.
Most bOpen agents exist in BOTH ecosystems:
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.
For Paperclip on Railway:
ANTHROPIC_API_KEY must be set as Railway env var/paperclip/ volume persist across deploysnode user via gosu entrypoint (not root)Only if the agent needs a live, always-on bot instance (e.g., a 24/7 support agent, a monitoring bot).
Skill(clawnet:clawnet-cli) for the deployment workflow~/code/clawnet (core) and ~/code/clawnet-bot (bot runner)clawnet-bot:clawnet-mechanic) for ongoing health and maintenanceJohnny handles: uptime monitoring, reconnects, key rotation, and ClawNet-specific debugging.
After any new agent is deployed:
bopen-tools:front-desk) about the new agent's name, trigger phrases, and delegation rulesskills/front-desk/references/service-providers.md file if Martha's routing reference needs updatingtools: field)| 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 (bopen-tools: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) |
tools
This skill should be used when a Claude Code session needs to keep working after Anthropic usage runs out, or when the user asks to run the Claude Code harness on GPT-5.6 Sol. Trigger phrases include "my Anthropic usage ran out", "I'm out of Claude usage", "usage limit reached, what now", "keep working on another model", "run Claude Code on GPT-5.6 Sol", "use GPT-5.6 Sol as the model", "set up claudex", "claudex isn't working", "route the harness through CLIProxyAPI", or "bill against my ChatGPT/Codex subscription". It stands up a local proxy so the Claude Code CLI runs on OpenAI's Codex backend as an escape hatch, and diagnoses that setup when it drifts. macOS + Homebrew.
testing
This skill should be used when the user asks to "open Visual Wayfinder", "answer a Wayfinder ticket visually", "turn this decision into a configurator", "show Wayfinder choices as a dashboard", "prototype the Wayfinder questionnaire", or wants interactive choice cards, tradeoff controls, rankings, ranges, toggles, and consequence previews for one active Wayfinder decision. It wraps the Wayfinder skill and JSON Render; it never replaces the tracker or resolves more than the active decision.
development
This skill should be used when the user asks to "make a visual proposal", "write this up so I can share it", "present these options visually", "diagram the trade-offs", "turn this plan into something reviewable", or requests a shareable design pitch, architecture proposal, RFC, options comparison, or visual roadmap for work that has not been built. It produces one self-contained, theme-aware HTML page led by grounded diagrams. Use visual-review instead for completed code changes; do not use this skill for internal task tracking.
tools
This skill should be used when the user asks to "add plugin settings", "make a plugin configurable", "store per-project plugin configuration", "use settings.local.json", "create a plugin state file", "expose skill settings in Agent Master", or "add a skill interface". Distinguishes official Claude Code settings from project-owned configuration and documents bOpen Agent Master skill interface discovery.