# Support a standalone master (judge) separate from worker slots

`6f9da77`→[main](/content/gh/entireio/cli/commits/main/index.html)·   dipree·1mo ago·4 files·+104 added/-24 removed

Foundation for the scout multi-agent flow: the master can now be its own agent + model that synthesizes the workers' reports without being one of the worker slots.

- settings: add ReviewProfileConfig.MasterAgent (standalone master); legacy worker `Master` still honored when MasterAgent is empty.
- profile: add profileMasterIdentity (MasterAgent wins, else legacy worker), masterDisplayLabel; resolveProfileMaster now delegates.
- cmd: multi-agent validation accepts a standalone master (validated for text generation) instead of requiring master ∈ workers; run path and scripted config updated accordingly.
- tests for master resolution precedence.

## Sessions

38a797061770View transcript

## Changes

4

- cmd/entire/cli

- review

- Mcmd.go+20/-14

- Mconfigure_test.go+42/-3

- Mprofile.go+30/-3

- settings

- Msettings.go+12/-4

```
543 unmodified lines

... (continued) ...

```

272 unmodified lines

// ReviewProfileConfig is intentionally small: the review package owns built-in
// default task text for conventional profile names like "general".
type ReviewProfileConfig struct {
    Task        string                  `json:"task,omitempty"`
    Agents      map[string]ReviewConfig `json:"agents,omitempty"`
    Master      string                  `json:"master,omitempty"`
    MasterModel string                  `json:"master_model,omitempty"`
    // Master is the legacy master selector: a worker key in Agents that also
    // writes the final report. Superseded by MasterAgent; still honored when
    // MasterAgent is empty.
    Master string `json:"master,omitempty"`
    // MasterAgent, when set, is a standalone master (judge): it synthesizes the
    // workers' reports and is NOT required to be one of the worker slots. Takes
    // precedence over Master.
    MasterAgent string `json:"master_agent,omitempty"`
    // MasterModel is the model for the master (applies to either form).
    MasterModel string `json:"master_model,omitempty"`
}

// IsZero reports whether the profile is effectively unset.
