package work type PerspectiveID string type PerspectiveSpec struct { ID PerspectiveID ObjectiveLens string FocusRef string RetrievalProfileRef string SkillRefs []string ToolRefs []string EvaluationCriteria []string CapabilityRequirements []string ExpectedOutputShape string Critic bool } type SpecialistAssignment struct { Perspective PerspectiveSpec SubtaskRef string FocusRef string SkillRefs []string ToolRefs []string EvidenceRefs []EvidenceRef } type TeamDecision struct { UseTeam bool Reason string Assignments []SpecialistAssignment } func (p PerspectiveSpec) Valid() bool { return p.ID != "" && p.ObjectiveLens != "" && p.FocusRef != "" && len(p.SkillRefs) > 0 && len(p.ToolRefs) > 0 && len(p.EvaluationCriteria) > 0 && p.ExpectedOutputShape != "" }