Skip to content

Orchestrator Mode: Skills bypass delegation enforcement #19

@Shakes-tzd

Description

@Shakes-tzd

Problem

Orchestrator mode is designed to enforce delegation to subagents to save context, but Skills can be invoked directly without going through the delegation layer, bypassing this enforcement.

What Happened

In a recent session, the orchestrator invoked a skill directly:

Skill(skill="frontend-design:frontend-design", args="...")

This caused the orchestrator to:

  1. Receive skill guidance in the main context
  2. Execute all the work directly (file reads, writes)
  3. Consume ~6,000 tokens of orchestrator context

Expected Behavior

The orchestrator should have delegated to a subagent:

Task(
  subagent_type="general-purpose",
  prompt="Use the frontend-design skill to redesign pages..."
)

This would use ~200 tokens instead (30x savings).

Root Cause

Skills execute in the main conversation context rather than spawning subagents. The orchestrator directives say to delegate everything, but skills provide an escape hatch that bypasses this rule.

Impact

  • Defeats the purpose of orchestrator mode (context efficiency)
  • Creates inconsistent behavior (some work delegated, some not)
  • Easy to accidentally bypass delegation without realizing it

Suggested Solutions

Option 1: Block Skills in Orchestrator Mode

  • When orchestrator: strict is enabled, block Skill tool usage
  • Force all work to go through Task delegation
  • Show error: "Skills not allowed in orchestrator mode. Use Task to delegate."

Option 2: Auto-Delegate Skills

  • When a Skill is invoked in orchestrator mode, automatically wrap it in a Task
  • Spawn a subagent that uses the skill
  • Transparent to the user

Option 3: Warning System

  • Allow skills but show a prominent warning in PostToolUse hook
  • "⚠️ ORCHESTRATOR: Skill invoked directly. Consider delegating via Task."
  • Helps train better delegation habits

Reproduction

  1. Enable orchestrator mode: htmlgraph orchestrator enable
  2. Invoke any skill: Skill(skill="some-skill")
  3. Observe: Work executes in main context instead of delegating

Additional Context

The orchestrator directives explicitly state to delegate everything except:

  • Task() - delegation itself
  • AskUserQuestion() - user interaction
  • TodoWrite() - tracking
  • SDK operations - feature management

Skills should either be added to this exception list (with justification) or should be enforced to go through Task delegation.

Session Evidence

Session where this occurred: FocusShield development, frontend UI polish

  • Skill invoked: frontend-design:frontend-design
  • Context used: ~6,000 tokens
  • Should have been: ~200 tokens (via Task delegation)

Metadata

  • Orchestrator level: strict
  • Session: 2026-01-03
  • Reporter: User caught the violation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions