pub struct Roles {
pub implementers: Vec<String>,
pub judges: Vec<String>,
pub reviewers: Vec<String>,
pub fixer: Option<String>,
pub planner: Option<String>,
}Expand description
Explicit role assignment. Empty lists are filled in by
Config::resolve_roles by rotating the roster.
Fields§
§implementers: Vec<String>Agents that implement the task, one worktree each.
judges: Vec<String>Agents that rank the candidates blind.
reviewers: Vec<String>Agents that review the winning patch.
fixer: Option<String>Agent that applies review findings. Defaults to the winner’s author.
planner: Option<String>Agent that runs the magi plan interview and the browser conversation.
Unset picks a claude seat, else the first runnable agent in roster
order - which is roster order, not a judgement about who interviews
well. Naming one here is worth it because the interview is the one node
a human sits through: the model that asks good questions is not
necessarily the one that writes the best patch, and on a phone there is
no --agent to type.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Roles
impl<'de> Deserialize<'de> for Roles
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Roles
impl RefUnwindSafe for Roles
impl Send for Roles
impl Sync for Roles
impl Unpin for Roles
impl UnsafeUnpin for Roles
impl UnwindSafe for Roles
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more