board-of-directors
Simulate a 5-member expert board deliberation for major decisions. Use when evaluating plans, architecture choices, feature designs, or any decision requiring…
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.
$ npx -y skills add Ibrahim-3d/orchestrator-supaconductor --skill agent-factory --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/agent-factoryContext preview
The summary Claude sees to decide when to auto-load this skill.
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.
name: agent-factory description: "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."
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:Multi-agent orchestration system for Claude Code with parallel execution, automated quality gates, Board of Directors, and bundled Superpowers skills
Repo: Ibrahim-3d/orchestrator-supaconductor
Simulate a 5-member expert board deliberation for major decisions. Use when evaluating plans, architecture choices, feature designs, or any decision requiring…
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent,…
Ensures all business strategy, pricing, and product documents stay synchronized when product decisions change during any track execution or evaluation.
Master coordinator for the Evaluate-Loop workflow v3. Supports GOAL-DRIVEN entry, PARALLEL execution via worker agents, BOARD OF DIRECTORS deliberation, and…
Use this skill when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship…
Load project context efficiently for Conductor workflows. Use when starting work on a track, implementing features, or needing project context without…