Comparator Construction Experimental Design Lens
Philosophical Mode: Counterfactual
Primary Question: "Is the comparator fair and relevant?"
Focus: Baseline Choice, Control Realism, Version Matching, Effort Symmetry, Baseline Drift
Arguments
/autoskillit:exp-lens-comparator-construction [context_path] [experiment_plan_path]
- context_path (optional positional arg 1) — Absolute path to a lens context file
containing IV/DV tables, H0/H1 hypotheses, controlled variables, and success criteria.
If provided, read this file before beginning analysis to obtain structured context.
If omitted, discover context by exploring the CWD.
- experiment_plan_path (optional positional arg 2) — Absolute path to the full
experiment plan. If provided, read for complete experimental methodology and design.
If omitted, locate the experiment plan by exploring the CWD.
When to Use
- Benchmark comparisons where baseline quality is questioned
- Ablation studies needing fair controls
- Claims of improvement over prior work
- User invokes
/autoskillit:exp-lens-comparator-construction or /autoskillit:make-experiment-diag comparator
Critical Constraints
NEVER:
- Modify any source code or experiment files
- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves
- Accept at face value that baselines received symmetric treatment
- Create files outside
{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/
- Run subagents in the background (
run_in_background: true is prohibited)
ALWAYS:
Build a fairness matrix covering all treatment-vs-comparator pairs
Check for confounding differences in implementation, tuning, data access, and compute
Assess whether each comparator is the best available alternative at the time of the experiment
Identify temporal drift in baseline relevance
BEFORE creating any diagram, LOAD the /autoskillit:mermaid skill using the Skill tool - this is MANDATORY
If the Skill tool cannot be used (disable-model-invocation) or refuses this invocation, do NOT proceed with diagram creation. Abort this step and omit the diagram from output.
Write output to {{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{YYYY-MM-DD_HHMMSS}.md
After writing the file, emit the structured output token as literal plain text with no
markdown formatting on the token name (the adjudicator performs a regex match):
diagram_path = /absolute/path/to/{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{...}.md
Analysis Workflow
Step 0: Parse optional arguments
If positional arg 1 (context_path) is provided and the file exists, read it to obtain
IV/DV tables, H0/H1 hypotheses, controlled variables, and success criteria. If positional
arg 2 (experiment_plan_path) is provided and exists, read the experiment plan for full
methodology. Use this structured context as the foundation for Steps 1-5; skip the CWD
exploration for these fields if the context file supplies them.
Step 1: Launch Parallel Exploration Subagents
Spawn Explore subagents to investigate:
Baseline/Control Definitions
- Find what the proposed method is compared against
- Look for: baseline, control, comparison, prior, state-of-the-art, vanilla, default, reference
Implementation Parity
- Find whether baselines get equal engineering effort
- Look for: reproduce, reimplement, original, paper, author, tuned, optimized, hyperparameter
Version & Environment Match
- Find whether baselines use the same software/hardware environment
- Look for: version, library, framework, gpu, hardware, environment, checkpoint
Tuning Protocol Symmetry
- Find whether hyperparameter tuning is symmetric
- Look for: tune, search, grid, optuna, sweep, budget, trials, epochs
Temporal Baseline Drift
- Find whether baselines have been updated or are stale
- Look for: date, published, year, updated, latest, deprecated, legacy
Step 2: Build the Comparator Inventory
For each comparator, assess:
- Is it the best available alternative?
- Is it given equal engineering effort?
- Is it run in the same environment?
- Is the tuning budget symmetric?
- Has it drifted since originally published?
Step 3: Construct the Fairness Matrix
CRITICAL — Analyze Counterfactual Quality:
For each treatment-vs-comparator pair:
- Does the comparison isolate the intended factor?
- Are there confounding differences in implementation, tuning, data access, or compute?
Build a fairness matrix with rows = comparators, columns = fairness dimensions.
Step 4: Create the Optional Comparison Diagram
If a diagram adds value, create a simplified flowchart. This is OPTIONAL for this hybrid lens — the tables are the primary output.
Direction: LR (treatment and comparator flow in parallel toward evaluation)
Subgraphs: "PROPOSED METHOD", "COMPARATOR(S)", "SHARED EVALUATION"
Node Styling:
cli class: proposed method nodes
phase class: comparator method nodes
handler class: shared evaluation pipeline nodes
output class: results nodes
gap class: asymmetries flagged
detector class: parity checks
Step 5: Write Output
Write the analysis to: {{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{YYYY-MM-DD_HHMMSS}.md (relative to the current working directory)
Output Template
# Comparator Construction Analysis: {Experiment Name}
**Lens:** Comparator Construction (Counterfactual)
**Question:** Is the comparator fair and relevant?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Comparator Inventory
| Comparator | Source | Reimplemented? | Same Environment? | Same Tuning Budget? |
|------------|--------|---------------|-------------------|---------------------|
| {name} | {paper/repo} | Yes / No / Partial | Yes / No | Yes / No / Unknown |
## Fairness Matrix
| Comparator | Best Available? | Equal Effort? | Same Env? | Symmetric Tuning? | Temporally Current? |
|------------|----------------|--------------|-----------|-------------------|---------------------|
| {name} | Yes / No | Yes / No | Yes / No | Yes / No | Yes / No |
## Comparison Diagram (Optional)
```mermaid
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%
flowchart LR
%% CLASS DEFINITIONS %%
classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;
classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;
classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;
classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;
classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;
classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;
classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;
classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;
classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;
subgraph Proposed ["PROPOSED METHOD"]
METHOD["Proposed Method<br/>━━━━━━━━━━<br/>{method name}"]
end
subgraph Comparators ["COMPARATOR(S)"]
COMP1["Comparator 1<br/>━━━━━━━━━━<br/>{name}"]
COMP2["Comparator 2<br/>━━━━━━━━━━<br/>{name}"]
end
subgraph Evaluation ["SHARED EVALUATION"]
EVAL["Evaluation Pipeline<br/>━━━━━━━━━━<br/>{dataset/benchmark}"]
RESULTS["Results<br/>━━━━━━━━━━<br/>{metrics reported}"]
PARITY["Parity Check<br/>━━━━━━━━━━<br/>{asymmetry found}"]
ASYM["Asymmetry<br/>━━━━━━━━━━<br/>{description}"]
end
METHOD -->|"evaluated on"| EVAL
COMP1 -->|"evaluated on"| EVAL
COMP2 -->|"evaluated on"| EVAL
EVAL --> RESULTS
RESULTS --> PARITY
PARITY -.->|"flagged"| ASYM
class METHOD cli;
class COMP1,COMP2 phase;
class EVAL handler;
class RESULTS output;
class PARITY detector;
class ASYM gap;
Color Legend:
| Color |
Category |
Description |
| Dark Blue |
Proposed Method |
The method being evaluated |
| Purple |
Comparators |
Baselines and controls |
| Orange |
Evaluation |
Shared evaluation pipeline |
| Dark Teal |
Results |
Reported outcomes |
| Red |
Parity Checks |
Fairness verification points |
| Yellow |
Asymmetries |
Flagged unfair differences |
Asymmetry Register
| # |
Asymmetry |
Affects |
Impact Assessment |
Remediation |
| 1 |
{description} |
{comparator(s)} |
High / Medium / Low |
{how to fix} |
Recommendations
- {Most critical fairness fix — e.g., retune baseline with same budget}
- {Version alignment or environment standardization needed}
- {Additional comparator that should be included}
---
## Pre-Diagram Checklist
Before creating the diagram, verify:
- [ ] LOADED `/autoskillit:mermaid` skill using the Skill tool
- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)
- [ ] Diagram will include a color legend table
---
## Related Skills
- `/autoskillit:make-experiment-diag` - Parent skill for lens selection
- `/autoskillit:mermaid` - MUST BE LOADED before creating diagram
- `/autoskillit:exp-lens-estimand-clarity` - For clarifying what the comparison is measuring
- `/autoskillit:exp-lens-fair-comparison` - For deeper analysis of evaluation protocol fairness
1---2name: exp-lens-comparator-construction3description: Create Comparator Construction experimental design analysis assessing whether baselines and controls are fair and relevant. Counterfactual lens answering "Is the comparator fair and relevant?"4---56# Comparator Construction Experimental Design Lens78**Philosophical Mode:** Counterfactual9**Primary Question:** "Is the comparator fair and relevant?"10**Focus:** Baseline Choice, Control Realism, Version Matching, Effort Symmetry, Baseline Drift1112## Arguments1314`/autoskillit:exp-lens-comparator-construction [context_path] [experiment_plan_path]`1516- **context_path** (optional positional arg 1) — Absolute path to a lens context file17 containing IV/DV tables, H0/H1 hypotheses, controlled variables, and success criteria.18 If provided, read this file before beginning analysis to obtain structured context.19 If omitted, discover context by exploring the CWD.20- **experiment_plan_path** (optional positional arg 2) — Absolute path to the full21 experiment plan. If provided, read for complete experimental methodology and design.22 If omitted, locate the experiment plan by exploring the CWD.2324## When to Use2526- Benchmark comparisons where baseline quality is questioned27- Ablation studies needing fair controls28- Claims of improvement over prior work29- User invokes `/autoskillit:exp-lens-comparator-construction` or `/autoskillit:make-experiment-diag comparator`3031## Critical Constraints3233**NEVER:**34- Modify any source code or experiment files35- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves36- Accept at face value that baselines received symmetric treatment37- Create files outside `{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/`38- Run subagents in the background (`run_in_background: true` is prohibited)3940**ALWAYS:**41- Build a fairness matrix covering all treatment-vs-comparator pairs42- Check for confounding differences in implementation, tuning, data access, and compute43- Assess whether each comparator is the best available alternative at the time of the experiment44- Identify temporal drift in baseline relevance45- BEFORE creating any diagram, LOAD the `/autoskillit:mermaid` skill using the Skill tool - this is MANDATORY46- If the Skill tool cannot be used (disable-model-invocation) or refuses this invocation, do NOT proceed with diagram creation. Abort this step and omit the diagram from output.47- Write output to `{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{YYYY-MM-DD_HHMMSS}.md`48- After writing the file, emit the structured output token as **literal plain text** with no49 markdown formatting on the token name (the adjudicator performs a regex match):5051 ```52 diagram_path = /absolute/path/to/{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{...}.md53 ```5455---5657## Analysis Workflow5859### Step 0: Parse optional arguments6061If positional arg 1 (context_path) is provided and the file exists, read it to obtain62IV/DV tables, H0/H1 hypotheses, controlled variables, and success criteria. If positional63arg 2 (experiment_plan_path) is provided and exists, read the experiment plan for full64methodology. Use this structured context as the foundation for Steps 1-5; skip the CWD65exploration for these fields if the context file supplies them.6667### Step 1: Launch Parallel Exploration Subagents6869Spawn Explore subagents to investigate:7071**Baseline/Control Definitions**72- Find what the proposed method is compared against73- Look for: baseline, control, comparison, prior, state-of-the-art, vanilla, default, reference7475**Implementation Parity**76- Find whether baselines get equal engineering effort77- Look for: reproduce, reimplement, original, paper, author, tuned, optimized, hyperparameter7879**Version & Environment Match**80- Find whether baselines use the same software/hardware environment81- Look for: version, library, framework, gpu, hardware, environment, checkpoint8283**Tuning Protocol Symmetry**84- Find whether hyperparameter tuning is symmetric85- Look for: tune, search, grid, optuna, sweep, budget, trials, epochs8687**Temporal Baseline Drift**88- Find whether baselines have been updated or are stale89- Look for: date, published, year, updated, latest, deprecated, legacy9091### Step 2: Build the Comparator Inventory9293For each comparator, assess:941. Is it the best available alternative?952. Is it given equal engineering effort?963. Is it run in the same environment?974. Is the tuning budget symmetric?985. Has it drifted since originally published?99100### Step 3: Construct the Fairness Matrix101102**CRITICAL — Analyze Counterfactual Quality:**103For each treatment-vs-comparator pair:104- Does the comparison isolate the intended factor?105- Are there confounding differences in implementation, tuning, data access, or compute?106107Build a fairness matrix with rows = comparators, columns = fairness dimensions.108109### Step 4: Create the Optional Comparison Diagram110111If a diagram adds value, create a simplified flowchart. This is OPTIONAL for this hybrid lens — the tables are the primary output.112113**Direction:** `LR` (treatment and comparator flow in parallel toward evaluation)114115**Subgraphs:** "PROPOSED METHOD", "COMPARATOR(S)", "SHARED EVALUATION"116117**Node Styling:**118- `cli` class: proposed method nodes119- `phase` class: comparator method nodes120- `handler` class: shared evaluation pipeline nodes121- `output` class: results nodes122- `gap` class: asymmetries flagged123- `detector` class: parity checks124125### Step 5: Write Output126127Write the analysis to: `{{AUTOSKILLIT_TEMP}}/exp-lens-comparator-construction/exp_diag_comparator_construction_{YYYY-MM-DD_HHMMSS}.md` (relative to the current working directory)128129---130131## Output Template132133```markdown134# Comparator Construction Analysis: {Experiment Name}135136**Lens:** Comparator Construction (Counterfactual)137**Question:** Is the comparator fair and relevant?138**Date:** {YYYY-MM-DD}139**Scope:** {What was analyzed}140141## Comparator Inventory142143| Comparator | Source | Reimplemented? | Same Environment? | Same Tuning Budget? |144|------------|--------|---------------|-------------------|---------------------|145| {name} | {paper/repo} | Yes / No / Partial | Yes / No | Yes / No / Unknown |146147## Fairness Matrix148149| Comparator | Best Available? | Equal Effort? | Same Env? | Symmetric Tuning? | Temporally Current? |150|------------|----------------|--------------|-----------|-------------------|---------------------|151| {name} | Yes / No | Yes / No | Yes / No | Yes / No | Yes / No |152153## Comparison Diagram (Optional)154155```mermaid156%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%157flowchart LR158 %% CLASS DEFINITIONS %%159 classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;160 classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;161 classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;162 classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;163 classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;164 classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;165 classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;166 classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;167 classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;168169 subgraph Proposed ["PROPOSED METHOD"]170 METHOD["Proposed Method<br/>━━━━━━━━━━<br/>{method name}"]171 end172173 subgraph Comparators ["COMPARATOR(S)"]174 COMP1["Comparator 1<br/>━━━━━━━━━━<br/>{name}"]175 COMP2["Comparator 2<br/>━━━━━━━━━━<br/>{name}"]176 end177178 subgraph Evaluation ["SHARED EVALUATION"]179 EVAL["Evaluation Pipeline<br/>━━━━━━━━━━<br/>{dataset/benchmark}"]180 RESULTS["Results<br/>━━━━━━━━━━<br/>{metrics reported}"]181 PARITY["Parity Check<br/>━━━━━━━━━━<br/>{asymmetry found}"]182 ASYM["Asymmetry<br/>━━━━━━━━━━<br/>{description}"]183 end184185 METHOD -->|"evaluated on"| EVAL186 COMP1 -->|"evaluated on"| EVAL187 COMP2 -->|"evaluated on"| EVAL188 EVAL --> RESULTS189 RESULTS --> PARITY190 PARITY -.->|"flagged"| ASYM191192 class METHOD cli;193 class COMP1,COMP2 phase;194 class EVAL handler;195 class RESULTS output;196 class PARITY detector;197 class ASYM gap;198```199200**Color Legend:**201| Color | Category | Description |202|-------|----------|-------------|203| Dark Blue | Proposed Method | The method being evaluated |204| Purple | Comparators | Baselines and controls |205| Orange | Evaluation | Shared evaluation pipeline |206| Dark Teal | Results | Reported outcomes |207| Red | Parity Checks | Fairness verification points |208| Yellow | Asymmetries | Flagged unfair differences |209210## Asymmetry Register211212| # | Asymmetry | Affects | Impact Assessment | Remediation |213|---|-----------|---------|-------------------|-------------|214| 1 | {description} | {comparator(s)} | High / Medium / Low | {how to fix} |215216## Recommendations2172181. {Most critical fairness fix — e.g., retune baseline with same budget}2192. {Version alignment or environment standardization needed}2203. {Additional comparator that should be included}221```222223---224225## Pre-Diagram Checklist226227Before creating the diagram, verify:228229- [ ] LOADED `/autoskillit:mermaid` skill using the Skill tool230- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)231- [ ] Diagram will include a color legend table232233---234235## Related Skills236237- `/autoskillit:make-experiment-diag` - Parent skill for lens selection238- `/autoskillit:mermaid` - MUST BE LOADED before creating diagram239- `/autoskillit:exp-lens-estimand-clarity` - For clarifying what the comparison is measuring240- `/autoskillit:exp-lens-fair-comparison` - For deeper analysis of evaluation protocol fairness