- Each workflow factory takes defaultAdapter: AgentFn + adapters?: Partial<Record<RoleUnion, AgentFn>> - index.ts only overrides roles that differ from default (planner/coder use cursor, rest fallback) - Cleaner call sites, type-safe role names Refs #15