Self-Play for DSH
Self-play is a search around a candidate, not a ceremony that certifies it. Apply the subagent-composition delegation gate first. Blind roles require cold DSH subagent; subagent_fork inherits completed parent history and is forbidden. If cold spawn or required tool isolation is absent, disclose the limitation and stop.
Before authoring player prompts, load prompt-engineering and hypershot-protocol with lowercase skill unless their <skill_content> blocks are already present. Use judge-composition for the judge seat when utility must be assessed.
One iteration
- Pre-register the prediction, falsifying cell, condemning cell, stopping rule, and measurement floor before prompts or evidence exist.
- Have a cold gatherer build neutral ground without the hypothesis.
- Compose only roles that buy distinct blindness. Record an input-visibility matrix for every role.
- Run controls before live items. Stop if a negative control fails. A null result is
UNMEASURED/no detectable effect until a positive control proves the instrument can fire across the manipulated axis. - Launch independent cold players together with
run_in_background: falsewhen the next step requires their returned results. - Have a blind evaluator score an undifferentiated item list without condition labels or the prediction.
- Have a blind judge assess utility on the manipulated axis without the builder's stake; verify its load-bearing claims against source bytes.
- Compare results with the pre-registration, record contamination and abstentions, and choose the next variable through evidence rather than the builder's wish.
Create synthetic or mock data whenever testing or visualization needs inputs that are unavailable, sensitive, or too narrow to span the property. Add a blind item-smith plus a second blind role to adjudicate its key so the builder does not encode the preferred verdict. Shape the data to cover distinct viewpoints, roles, distributions, edge conditions, and plausible counterexamples; make those differences legible in comparative visualizations. Label it clearly, preserve its assumptions and seed or fixture when repeatability matters, keep it separate from observed data, and treat the result as evidence about candidate behavior rather than a claim about reality.
Stop when the axis is inert across spanning conditions, the effect is below a priced measurement floor, or the next variable costs more than the decision.
Role blindness
| Role | Work | Must be blind to |
|---|---|---|
| Gatherer | assemble reference ground | hypothesis and desired outcome |
| Adversary | construct the strongest attack | builder's intent and expected failure |
| Executor | run candidate over items | only what execution requires; decide explicitly whether it may also score |
| Evaluator | apply the metric | prediction and condition labels |
| Judge | score returned utility | prediction, arm identity, and builder's stake |
Input-visibility matrix
For each role record yes/no plus evidence for: per-call prompt, completed parent history, current parent turn, workspace files, user/project skills, package skills, repository instructions, candidate artifact, condition label, prediction, builder authorship/stake, other player outputs, and answer key. A cold call alone does not close filesystem, project-skill, user-skill, or repository-instruction leaks.
Player frame
{Role_Disposition_And_Reporting_Duty}
## Ground
- {Real_Addressed_Artifact_Or_Public_Corpus}
- {What_Counts_As_Evidence_Without_Revealing_The_Hypothesis}
## Task
{One_Bounded_Objective_With_No_Desired_Outcome}
## Return
{Literal_Frame_Where_Every_Claim_Has_An_Address_And_Every_Gap_Has_A_Slot}
If {Blocking_Condition}: report it and stop.
Never install the artifact under test as a discoverable skill for blind players. Deliver it as controlled prompt data or in an isolated workspace, and verify from the outside that hidden skill bodies, catalogs, and files did not reach the role. Byte difference between candidate versions is not proof of non-contamination.
Operational isolation checks are in references/dsh-isolation.md. Inherited measurement and failure references remain under references/ with the adjacent CC BY license and attribution.