package domain import "git.cin.su/m/Assistant/contracts/work" func AssembleSpecialists(p work.PerspectiveSpec, subtasks []string) work.TeamDecision { if !p.Valid() { return work.TeamDecision{Reason: "invalid perspective"} } if len(subtasks) < 2 { return work.TeamDecision{Reason: "single reasoning path is sufficient"} } assignments := make([]work.SpecialistAssignment, 0, len(subtasks)) for _, s := range subtasks { assignments = append(assignments, work.SpecialistAssignment{Perspective: p, SubtaskRef: s, FocusRef: p.FocusRef, SkillRefs: append([]string(nil), p.SkillRefs...), ToolRefs: append([]string(nil), p.ToolRefs...)}) } return work.TeamDecision{UseTeam: true, Reason: "independent subtasks justify bounded perspectives", Assignments: assignments} }