Code-crew agent-manager
Creates, lists, and removes custom project-specific agents. Custom agents are stored in .claude/crew-agents/ and registered in crew-team.json for routing.
install
source · Clone the upstream repo
git clone https://github.com/d3x293/code-crew
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/d3x293/code-crew "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/agent-manager" ~/.claude/skills/d3x293-code-crew-agent-manager && rm -rf "$T"
manifest:
skills/agent-manager/SKILL.mdsource content
Agent Manager - Custom Agent Creation
Manages project-specific custom agents that extend the built-in CodeCrew team.
When to Activate
- User runs
/crew agent create|list|remove
Storage
Custom agents are stored in
.claude/crew-agents/ (project-local directory, NOT in the plugin's agents/ directory). This keeps custom agents project-specific and avoids conflicts with plugin updates.
Subcommands
create "name" --model <tier> --description "desc"
create "name" --model <tier> --description "desc"Creates a new custom agent definition.
Required arguments:
— Agent name (alphanumeric + hyphens, e.g., "api-specialist")name
— Model tier:--model
orsonnet
(Opus reserved for CEO)haiku
— What this agent specializes in--description
Process:
- Validate the name is unique (not already in crew-team.json)
- Create directory
if it doesn't exist.claude/crew-agents/ - Generate the agent file
using the appropriate template:.claude/crew-agents/{name}.md
Sonnet agent template:
--- name: crew-{name} description: {user's description} model: sonnet --- You are the **{Name}** at CodeCrew. {user's description}. ## INDEX-FIRST PROTOCOL (MANDATORY) **INDEX-FIRST**: Read `.claude/crew-index.json` → `crew-symbols.json` → then only specific lines from source files. Never read entire files. ## Your Responsibilities 1. {Edit this section to define specific responsibilities} 2. {Add more as needed} ## Output Format When done, report: - What you changed (file paths + summary) - FILES_MODIFIED: {list} - Confidence level: high | medium | low - Any concerns or dependencies
Haiku agent template:
--- name: crew-{name} description: {user's description} model: haiku --- You are the **{Name}** at CodeCrew. {user's description}. ## INDEX-FIRST PROTOCOL (MANDATORY) **INDEX-FIRST**: Read `.claude/crew-index.json` → `crew-symbols.json` → then only the lines you need. Never read entire files. ## Your Tasks - {Edit this section to define specific tasks} - If the task is too complex, report: "ESCALATE: Needs senior-dev" ## Output FILES_MODIFIED: {list} CONFIDENCE: {high | medium | low}
- Register the agent in
:.claude/crew-team.json
"custom-{name}": { "model": "{tier}", "active": true, "role": "{description}", "custom": true, "definitionPath": ".claude/crew-agents/{name}.md" }
- Confirm to user:
Agent "{name}" created ({tier}) — .claude/crew-agents/{name}.md Edit definition to customize. Auto-registered in routing.
list
— List All Agents
list- Read
.claude/crew-team.json - Display all agents (built-in + custom):
Agents: Built-in: ceo (opus) Active - Triage, decompose, delegate vp-engineering (sonnet) Active - Architecture, tech decisions ... Custom: api-specialist (sonnet) Active - Expert in REST API layer db-optimizer (haiku) Active - Database query optimization
If no custom agents: "No custom agents. /crew agent create to add one."
remove "name"
— Remove a Custom Agent
remove "name"- Validate the agent exists in crew-team.json and has
"custom": true - Cannot remove built-in agents — if attempted: "Can't remove built-in agent. Use /crew config to disable."
- Remove the agent entry from
.claude/crew-team.json - Delete the agent file
.claude/crew-agents/{name}.md - Confirm:
"Custom agent '{name}' removed."
Integration with Task Routing
The task-router and lite-router should check
.claude/crew-team.json for custom agents:
- When classifying a task, check if any custom agent's description keywords match the task
- Custom agents can be inserted into routing chains:
- If
→ can replace junior-dev for matching tasksmodel: haiku - If
→ can replace senior-dev for matching tasksmodel: sonnet
- If
- Custom agents follow the same dispatch protocol (Index-First, skill injection, self-contained prompts)
Example: If a custom "api-specialist" agent exists with description "Expert in REST API layer", and the user runs
/crew task "fix the API endpoint for users", the router may choose api-specialist over senior-dev since it's more specialized.