What Is Orchestrator Mode?
When orchestrator_mode is parent (the only supported value in .silver-bullet.json), Silver Bullet treats the main session as a scheduler, not an implementer. The parent reads orchestrator-directive.json, spawns Task workers from .silver-bullet/orchestrator-workers/ templates, and advances the flow queue until it is empty.
This model is proven structurally — hook tests, directive guards, and parent-only tool allowlists enforce it on tier 2+ hosts (Cursor Multitask, Claude Code with hooks). It is not the same as full enterprise autonomy: live tri-host E2E certification is still in progress (see Autonomous Enterprise Status).
docs/ORCHESTRATOR.md in the SB repo defines the orchestrator contract. This help page summarizes customer-facing behavior — not runtime internals.Parent vs Worker Roles
| Role | May implement? | Typical tools (tier 2+) |
|---|---|---|
| Parent | No — schedules only | Task, Read, Grep, Glob; Skill: silver / silver-orchestrator |
| Worker | Yes — after assigned skill | Full tool surface per atomic-flow contract; must invoke the assigned skill so hooks record state |
Workers run with SB_ORCHESTRATOR_WORKER=1 so directive-guard semantics apply until next_skill is recorded. The parent clears worker markers on SubagentStop and writes the next directive via flow-advance.sh.
Directive Loop
- User intent arrives via
/silveror a composer workflow skill. - Composer spec seeds
orchestrator.jsonand the enforcement queue. orchestrator-directive.jsonnamesnext_skill+next_worker_template.- Parent spawns a Task worker using the matching template under
.silver-bullet/orchestrator-workers/. - Worker invokes the skill, implements the atomic flow, and produces V-loop evidence.
- Queue advances; repeat until
current_flowis empty.
Blocking Decisions (Human Gates)
Autonomous mode suppresses clarifying questions for non-blocking preferences. SB still escalates outcomes tagged decision_class: blocking — material forks, irreversible external actions, missing credentials, or destructive ambiguity.
- Blocking — parent must ask the user; queue pauses until resolved or audited
SB OVERRIDE: <reason>is logged. - Non-blocking — SB may choose a best-judgment default and log an Autonomous decision.
- Production deploy / release — remain human-gated unless an explicit enterprise policy profile documents a narrower exception (today: still human-gated for production).
/silver:clarify --auto frames scope without interactive back-and-forth; it does not remove blocking gates. See Enterprise Policy Profiles for how teams declare posture in config.
State and Audit Surfaces
| Artifact | Purpose |
|---|---|
orchestrator.json | Session flow queue, current_flow, workflow id |
orchestrator-directive.json | Mandatory next skill + worker template when blocking: true |
.planning/orchestrator-composition-log.jsonl | Autonomous composition audit (committed) |
.planning/orchestrator-override-log.jsonl | User SB OVERRIDE: audit trail (committed) |
Tier 0–1 Fallback
Hosts without Task/subagent support or without merged hooks (tier 0–1) invoke the same skill sequence directly in a single session. Parent-only directive blocks apply only when tier ≥ 2 and orchestrator_mode is parent. See Capability Matrix and docs/RUNTIME-COMPATIBILITY.md.
See Also
- Enterprise Policy Profiles — supervised, autonomous-safe, regulated, and internal-dogfood postures
- Autonomous Enterprise Status — proof levels and certification gaps
- Composable Workflow Orchestration — APO catalog and atomic flows
- /silver:feature — default delivery composer