Team Agent Orchestration
affaan-m/ECC
Run team-based orchestration for agent squads: work items with owners and scope, agent Kanban state, branch isolation, control pane visibility, and merge gates.
Creates specialized worker agents dynamically from templates.
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-factory .claude/skills/agent-factory && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .claude/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factoryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/agent-factory .agents/skills/agent-factory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .agents/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/agent-factory .cursor/skills/agent-factory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .cursor/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Ibrahim-3d/orchestrator-supaconductor.git --path skills/agent-factory--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/agent-factory .gemini/skills/agent-factory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .gemini/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/agent-factory .github/skills/agent-factory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .github/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Ibrahim-3d/orchestrator-supaconductor agent-factory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Ibrahim-3d/orchestrator-supaconductor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/agent-factory .opencode/skills/agent-factory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "agent-factory" agent skill from https://github.com/Ibrahim-3d/orchestrator-supaconductor/tree/master/skills/agent-factory into .opencode/skills/agent-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-factory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
agent-factoryCreates specialized worker agents dynamically from templates.
Agent Factory is an agent skill from Ibrahim-3d/orchestrator-supaconductor. Creates specialized worker agents dynamically from templates. Use when orchestrator needs to spawn task-specific workers for parallel execution. Handles agent lifecycle: create - execute - cleanup.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Multi-agent orchestration system for Claude Code with parallel execution, automated quality gates, Board of Directors, and bundled Superpowers skills. The licence is AGPL-3.0.
Read from SKILL.md and the folder at commit 76c9b10. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Agent Factory loads about 2.9k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 110 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Ibrahim-3d/orchestrator-supaconductor at commit 76c9b10, republished under its AGPL-3.0 licence (© Ibrahim-3d). 110 words, ~2,860 tokens.
.claude/skills/agent-factory/SKILL.md (or your agent's skills folder).Creates ephemeral worker agents from templates, specializing them based on task type.
Task from DAG -> Determine Type -> Select Template -> Substitute Placeholders -> Spawn Worker| Task Type | Template | Specialization |
|---|---|---|
code | code-worker.template.md | TDD, code patterns, tests |
ui | ui-worker.template.md | Design system, accessibility |
integration | integration-worker.template.md | API contracts, error handling |
test | test-worker.template.md | Coverage targets, test patterns |
docs | task-worker.template.md | Base template |
config | task-worker.template.md | Base template |
def create_worker_agent(task: dict, track_id: str, message_bus_path: str) -> dict:
"""
Create a specialized worker agent for a task.
Args:
task: Task node from DAG (id, name, type, files, depends_on, acceptance)
track_id: Current track identifier
message_bus_path: Path to message bus directory
Returns:
dict with worker_id, skill_path, prompt
"""
# 1. Generate unique worker ID
timestamp = datetime.utcnow().strftime("%Y%m%d%H%M%S")
worker_id = f"worker-{task['id']}-{timestamp}"
# 2. Select template based on task type
task_type = task.get('type', 'code')
template_map = {
'code': 'code-worker.template.md',
'ui': 'ui-worker.template.md',
'integration': 'integration-worker.template.md',
'test': 'test-worker.template.md',
}
template_name = template_map.get(task_type, 'task-worker.template.md')
template_path = f"${CLAUDE_PLUGIN_ROOT}/skills/worker-templates/{template_name}"
# 3. read_file template
template = read_file(template_path)
# 4. Prepare substitution values
substitutions = {
'{task_id}': task['id'],
'{task_name}': task['name'],
'{track_id}': track_id,
'{phase}': str(task.get('phase', 1)),
'{files}': format_list(task.get('files', [])),
'{depends_on}': format_list(task.get('depends_on', [])),
'{acceptance}': task.get('acceptance', 'Complete the task as specified'),
'{message_bus_path}': message_bus_path,
'{timestamp}': timestamp,
'{worker_id}': worker_id,
'{unblocks}': format_list(find_unblocked_tasks(task['id'])),
}
# 5. Substitute placeholders
worker_skill = template
for placeholder, value in substitutions.items():
worker_skill = worker_skill.replace(placeholder, value)
# 6. Add task-specific instructions
if task.get('task_instructions'):
worker_skill = worker_skill.replace(
'{task_instructions}',
task['task_instructions']
)
else:
worker_skill = worker_skill.replace(
'{task_instructions}',
f"Implement: {task['name']}\n\nAcceptance: {task.get('acceptance', 'N/A')}"
)
# 7. Add base protocol
base_protocol = read_file("${CLAUDE_PLUGIN_ROOT}/skills/worker-templates/task-worker.template.md")
base_protocol_section = extract_section(base_protocol, "## Execution Protocol")
worker_skill = worker_skill.replace('{base_worker_protocol}', base_protocol_section)
# 8. Create worker skill directory (ephemeral)
worker_skill_path = f"${CLAUDE_PLUGIN_ROOT}/skills/workers/{worker_id}/SKILL.md"
os.makedirs(os.path.dirname(worker_skill_path), exist_ok=True)
write_file(worker_skill_path, worker_skill)
# 9. Generate dispatch prompt
dispatch_prompt = f"""You are worker agent {worker_id}.
Your task: {task['name']} (Task {task['id']})
MESSAGE BUS: {message_bus_path}
Follow your worker skill instructions at: {worker_skill_path}
Protocol:
1. Check dependencies via message bus
2. Acquire file locks before modifying
3. Post progress every 5 min
4. Post TASK_COMPLETE when done
Execute autonomously. Do NOT wait for user input."""
return {
'worker_id': worker_id,
'skill_path': worker_skill_path,
'prompt': dispatch_prompt,
'task_id': task['id'],
'task_type': task_type
}For parallel groups, create all workers at once:
def create_workers_for_parallel_group(
parallel_group: dict,
dag: dict,
track_id: str,
message_bus_path: str
) -> list:
"""
Create workers for all tasks in a parallel group.
Args:
parallel_group: Parallel group definition (id, tasks, conflict_free)
dag: Full DAG with all task nodes
track_id: Current track identifier
message_bus_path: Path to message bus
Returns:
List of worker definitions ready for dispatch
"""
workers = []
for task_id in parallel_group['tasks']:
# Find task in DAG
task = next((n for n in dag['nodes'] if n['id'] == task_id), None)
if not task:
continue
# Create worker
worker = create_worker_agent(task, track_id, message_bus_path)
# Add coordination info if not conflict-free
if not parallel_group.get('conflict_free', True):
worker['requires_coordination'] = True
worker['shared_resources'] = parallel_group.get('shared_resources', [])
workers.append(worker)
return workersDispatch workers via parallel Task calls:
def dispatch_workers(workers: list) -> list:
"""
Dispatch multiple workers in parallel using Task tool.
Returns list of Task call results.
"""
# Create Task calls for all workers
task_calls = []
for worker in workers:
task_calls.append({
'subagent_type': 'general-purpose',
'description': f"Execute {worker['task_id']}: {worker.get('task_name', 'task')}",
'prompt': worker['prompt'],
'run_in_background': True # Run in background for true parallelism
})
# Dispatch all at once (Claude Code handles parallel calls)
results = []
for call in task_calls:
result = Task(**call)
results.append(result)
return resultsAfter task completion, cleanup worker artifacts:
def cleanup_worker(worker_id: str):
"""
Remove ephemeral worker skill directory.
Called by orchestrator after worker reports completion.
"""
worker_skill_path = f"${CLAUDE_PLUGIN_ROOT}/skills/workers/{worker_id}"
if os.path.exists(worker_skill_path):
shutil.rmtree(worker_skill_path)
# Log cleanup
print(f"Cleaned up worker: {worker_id}")After parallel group completes:
def cleanup_parallel_group_workers(parallel_group_id: str, workers: list):
"""
Cleanup all workers from a completed parallel group.
"""
for worker in workers:
cleanup_worker(worker['worker_id'])
# Remove workers directory if empty
workers_dir = "${CLAUDE_PLUGIN_ROOT}/skills/workers"
if os.path.exists(workers_dir) and not os.listdir(workers_dir):
os.rmdir(workers_dir)def format_list(items: list) -> str:
"""Format list for template substitution."""
if not items:
return "None"
return "\n".join(f"- {item}" for item in items)
def find_unblocked_tasks(task_id: str, dag: dict) -> list:
"""Find tasks that will be unblocked when task_id completes."""
unblocked = []
for node in dag.get('nodes', []):
if task_id in node.get('depends_on', []):
# Check if this is the only remaining dependency
remaining_deps = [d for d in node['depends_on'] if d != task_id]
if not remaining_deps:
unblocked.append(node['id'])
return unblocked
def extract_section(content: str, section_header: str) -> str:
"""Extract a section from markdown content."""
lines = content.split('\n')
in_section = False
section_lines = []
for line in lines:
if line.startswith(section_header):
in_section = True
continue
elif in_section and line.startswith('## '):
break
elif in_section:
section_lines.append(line)
return '\n'.join(section_lines).strip()The orchestrator calls the agent factory during PARALLEL_EXECUTE:
# In conductor-orchestrator
async def execute_parallel_phase(phase: Phase, dag: dict):
# 1. Get parallel groups for this phase
parallel_groups = [
pg for pg in dag.get('parallel_groups', [])
if all(task_in_phase(t, phase) for t in pg['tasks'])
]
for pg in parallel_groups:
# 2. Create workers via agent factory
workers = create_workers_for_parallel_group(
pg, dag, track_id, message_bus_path
)
# 3. Dispatch workers in parallel
results = dispatch_workers(workers)
# 4. Monitor message bus for completion
await wait_for_group_completion(pg, message_bus_path)
# 5. Cleanup workers
cleanup_parallel_group_workers(pg['id'], workers)+---------------------------------------------------------------+
| WORKER LIFECYCLE |
| |
| 1. CREATE |
| Agent Factory -> Template -> Substitution -> Skill Dir |
| |
| 2. DISPATCH |
| Orchestrator -> Task(prompt, run_in_background) -> Worker |
| |
| 3. EXECUTE |
| Worker -> Check Deps -> Lock Files -> Implement -> Commit |
| |
| 4. REPORT |
| Worker -> Message Bus -> TASK_COMPLETE/TASK_FAILED |
| |
| 5. CLEANUP |
| Orchestrator -> cleanup_worker() -> Remove Skill Dir |
| |
+---------------------------------------------------------------+def handle_worker_failure(worker: dict, error: str, message_bus_path: str):
"""
Handle worker failure gracefully.
1. Post failure to message bus
2. Release any held locks
3. Cleanup worker artifacts
4. Notify orchestrator
"""
# Post failure message
post_message(message_bus_path, "TASK_FAILED", worker['worker_id'], {
"task_id": worker['task_id'],
"error": error
})
# Release all locks held by this worker
release_all_locks_for_worker(message_bus_path, worker['worker_id'])
# Cleanup worker
cleanup_worker(worker['worker_id'])© Ibrahim-3d, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/agent-factory of Ibrahim-3d/orchestrator-supaconductor.
Open the folder on GitHubat commit 76c9b10
Agent Factory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Agent Factory this skillIbrahim-3d/orchestrator-supaconductor | 381 | — | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| Team Agent Orchestrationaffaan-m/ECC | 276k | 1 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Orca Orchestrationstablyai/orca | 88k | — | ~916 | Automated safety check: Pass | MIT | |
| Agent Orchestrator Taskruvnet/ruflo | 74k | 2 repos | ~1k | Automated safety check: Pass | MIT | |
| Swarm Orchestrationruvnet/ruflo | 74k | 2 repos | ~779 | Automated safety check: Pass | MIT | |
| Orchestrator WorkerTh0rgal/sandboxed.sh | 516 | — | ~531 | Automated safety check: Pass | None |
affaan-m/ECC
Run team-based orchestration for agent squads: work items with owners and scope, agent Kanban state, branch isolation, control pane visibility, and merge gates.
stablyai/orca
Coordinate supervised Orca workers: threaded messages, blocking ask/reply, task dispatch, worker_done/escalation waits, task DAGs, decision gates, coordinator…
ruvnet/ruflo
Agent skill for orchestrator-task - invoke with $agent-orchestrator-task
ruvnet/ruflo
Coordinates a hierarchical swarm of specialized agents through the claude-flow CLI for work that spans several files or modules at once.
Th0rgal/sandboxed.sh
Sets the rules for a worker agent spawned by a boss mission: stay in scope, verify before finishing, report blockers quickly and end with a clear status.
affaan-m/ECC
Read a plan document, decompose it into steps, design a per-step agent chain from the ECC catalogue, and emit ready-to-paste /orchestrate custom prompts.
Ibrahim-3d/orchestrator-supaconductor
Technical leadership guidance for engineering teams, architecture decisions, and technology strategy.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
Ibrahim-3d/orchestrator-supaconductor
Simulate a 5-member expert board deliberation for major decisions.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when completing a track that changes pricing, AI models, product features, or asset pipelines — syncs business context documents across all tiers.
Ibrahim-3d/orchestrator-supaconductor
Load project context efficiently for Conductor workflows. An agent skill from Ibrahim-3d/orchestrator-supaconductor.
Ibrahim-3d/orchestrator-supaconductor
Specialized business logic evaluator for the Evaluate-Loop. An agent skill from Ibrahim-3d/orchestrator-supaconductor.
Creates specialized worker agents dynamically from templates. Agent Factory is an agent skill from Ibrahim-3d/orchestrator-supaconductor. Creates specialized worker agents dynamically from templates.
Agent Factory fits situations like: orchestrator needs to spawn task-specific workers for parallel execution.
Run `npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a claude-code`. Or copy the skill folder (skills/agent-factory in Ibrahim-3d/orchestrator-supaconductor) into .claude/skills/agent-factory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a codex`. Or copy the skill folder (skills/agent-factory in Ibrahim-3d/orchestrator-supaconductor) into .agents/skills/agent-factory in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-factory, .gemini/skills/agent-factory, .github/skills/agent-factory and .opencode/skills/agent-factory in your project.
SKILL.md names no scripts, command-line tools or credentials: Agent Factory is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Agent Factory is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Agent Factory: Team Agent Orchestration (affaan-m/ECC, 276k stars), Orca Orchestration (stablyai/orca, 88k stars), Agent Orchestrator Task (ruvnet/ruflo, 74k stars) and Swarm Orchestration (ruvnet/ruflo, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Ibrahim-3d (a GitHub user) maintains it in Ibrahim-3d/orchestrator-supaconductor, which has 381 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 27, 2026.
Source: Ibrahim-3d/orchestrator-supaconductor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.