Suite configuration¶
Suite YAML defines missions, protocols, pairing policy, manual profile, modalities, and revision.
suite freeze records a frozen revision in configs/suites/suites.lock. Specification generation
reads that frozen revision rather than the current YAML.
Configuration shape¶
Files under configs/suites/ use Hydra's _target_ keys to construct Suite, SuiteMatchup,
PlayerProtocol, and ManualProfile. Start from configs/suites/_template.yaml.
PairingType accepts:
with_selffor the same configured player in both roles;pairwisefor every ordered Defuser and Expert pairing;with_best_defuserorwith_best_expertfor an anchor from the run manifest; andno_expertfor a solo Defuser protocol.
The defuser_protocol role must be defuser. An expert_protocol, when present, must use
expert. A solo Defuser cannot have an Expert.
Increase the revision when measured content changes
suite freeze rejects a changed suite digest at an existing name and revision. Increase the
revision, then freeze the new configuration and mission snapshot.
modality is sorted and deduplicated before digest calculation. Current v2 scheduling does not
enforce the value against player capabilities.
Generated models¶
Suite
pydantic-model
¶
Bases: BaseModel
One benchmark-suite configuration that defines a comparable set of results.
It records the mission set, per-role interaction protocol, player matchup, required modalities,
and revision that define what is measured. A SuiteLockEntry records a frozen revision of this
configuration.
digest fingerprints the config and the mission files together, so a change without a
revision bump is caught.
SuiteMatchup
pydantic-model
¶
SuiteIdentity
pydantic-model
¶
PlayerProtocol
pydantic-model
¶
Bases: BaseModel
Protocol that a player has for some experiment.
Attributes¶
role
instance-attribute
¶
The role of the player in the experiment.
This also determines what they will have access to.
communication_style
instance-attribute
¶
The style of communication the player will use.
Either async (all players communicate at once) or sync (players take turns).
is_playing_alone
instance-attribute
¶
is_playing_alone: bool
Whether the player is playing alone or with others.
include_manual
instance-attribute
¶
include_manual: bool
Whether the manual should be included in the prompt.
receive_feedback_after_action
class-attribute
instance-attribute
¶
receive_feedback_after_action: bool = False
Whether or not a player should receive feedback after each action.
allow_magic_actions
class-attribute
instance-attribute
¶
allow_magic_actions: bool = False
Whether the player is allowed to perform magic actions.
allow_lottery_actions
class-attribute
instance-attribute
¶
allow_lottery_actions: bool = False
Whether the player is allowed to perform lottery actions.
is_solo_player
property
¶
is_solo_player: bool
Whether the player is a solo player.
This is used to determine whether the player is playing alone or with others.
allow_message_output
property
¶
allow_message_output: bool
Whether to allow the players to send messages to each other.
This only makes sense if the player is not playing alone.
Methods:¶
digest covers the materialised mission bodies, manual profile and rule seed, role protocols,
matchup, and modalities. It excludes the suite name, revision, configuration path, and freeze
provenance. The lock version defines the digest recipe. The exact frozen lock structure is
documented with submission bundles and comparability is explained
in Suites, revisions, and comparability.