18 lines
656 B
Go
18 lines
656 B
Go
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})
|
|
}
|
|
return work.TeamDecision{UseTeam: true, Reason: "independent subtasks justify bounded perspectives", Assignments: assignments}
|
|
}
|