Fair Comparison Experimental Design Lens
Philosophical Mode: Fairness
Primary Question: "Are alternatives compared under symmetric constraints?"
Focus: Compute Budget Symmetry, Tuning Protocol Parity, Data Access Equality, Engineering Effort Balance, Winner's Curse
When to Use
- Method comparisons where tuning effort differs
- Benchmark results where compute budgets are unequal
- Claims of SOTA that may reflect process differences
- User invokes
/exp-lens-fair-comparison or /make-experiment-diag fairness
Critical Constraints
NEVER:
- Modify any source code files
- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves
ALWAYS:
- Build the full symmetry matrix — every method against every resource dimension
- Attribute improvements to method vs. process — both deserve accounting
- Flag undisclosed compute or tuning as a finding, not an assumption
- Assess the winner's curse: did the proposed method benefit from more selection pressure?
- BEFORE creating any diagram, LOAD the
/mermaid skill using the Skill tool - this is MANDATORY
Analysis Workflow
Step 1: Launch Parallel Exploration Subagents
Spawn Explore subagents to investigate:
Compute & Resource Allocation
- Find compute resources used per method
- Look for: gpu, tpu, hours, cost, memory, flops, compute_budget, machine, cluster
Tuning Protocol per Method
- Find tuning procedures for each compared method
- Look for: grid_search, optuna, bayesian_opt, hyperband, tune, sweep, trials, budget, early_stop
Data Access & Preprocessing
- Find whether all methods use the same data pipeline
- Look for: data_augmentation, preprocessing, feature, embedding, pretrained, extra_data, auxiliary
Engineering Effort Indicators
- Find differential engineering investment
- Look for: custom, specialized, trick, hack, ensemble, post_process, calibrate, threshold_tune
Reporting Completeness
- Find whether resource usage is disclosed
- Look for: report, disclose, computational_cost, wall_time, parameter_count, training_time
Step 2: Build Symmetry Matrix
Build the symmetry matrix: rows = methods compared, columns = resource dimensions (compute, tuning, data, engineering, disclosure).
For each cell:
- Is the allocation symmetric?
- If not, does the asymmetry favor the proposed method?
- Estimate the magnitude of bias from each asymmetry.
Step 3: Analyze Effort Attribution
CRITICAL — Analyze Effort Attribution:
For every claimed improvement:
- What fraction of the improvement can be attributed to the method itself vs. differential engineering effort, tuning budget, or data access?
Step 4: Create the Diagram
Use the mermaid skill conventions to create a symmetry diagram with:
Direction: LR (methods flow through resource allocation to evaluation)
Subgraphs:
- METHODS
- RESOURCE ALLOCATION
- EVALUATION
Node Styling:
cli class: Proposed method
phase class: Comparator methods
handler class: Shared resources
gap class: Asymmetric resources
detector class: Symmetry checks
output class: Results
Step 5: Write Output
Write the diagram to: temp/exp-lens-fair-comparison/exp_diag_fair_comparison_{YYYY-MM-DD_HHMMSS}.md
Output Template
# Fair Comparison Analysis: {Experiment Name}
**Lens:** Fair Comparison (Fairness)
**Question:** Are alternatives compared under symmetric constraints?
**Date:** {YYYY-MM-DD}
**Scope:** {What was analyzed}
## Symmetry Matrix
| Method | Compute | Tuning Budget | Data Access | Engineering | Disclosure |
|--------|---------|---------------|-------------|-------------|------------|
| {proposed method} | {allocation} | {budget} | {access} | {effort} | {disclosed?} |
| {comparator} | {allocation} | {budget} | {access} | {effort} | {disclosed?} |
## Resource Disclosure
| Resource Type | Proposed Method | Comparators | Symmetric? |
|---------------|-----------------|-------------|------------|
| {GPU hours} | {value} | {value} | {Yes/No} |
| {Tuning trials} | {value} | {value} | {Yes/No} |
| {Extra data} | {value} | {value} | {Yes/No} |
## Symmetry Diagram
```mermaid
%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%
graph 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 Methods ["METHODS"]
direction TB
PROP["Proposed Method<br/>━━━━━━━━━━<br/>Method under<br/>evaluation"]
COMP["Comparator Methods<br/>━━━━━━━━━━<br/>Baseline and<br/>prior work"]
end
subgraph Resources ["RESOURCE ALLOCATION"]
direction TB
SHARED["Shared Resources<br/>━━━━━━━━━━<br/>Same data, same<br/>evaluation protocol"]
ASYM["Asymmetric Resources<br/>━━━━━━━━━━<br/>Differential compute<br/>or tuning budget"]
CHECK["Symmetry Check<br/>━━━━━━━━━━<br/>Verify parity<br/>across methods"]
end
subgraph Eval ["EVALUATION"]
direction TB
RESULT["Results<br/>━━━━━━━━━━<br/>Reported<br/>performance"]
end
PROP --> SHARED
COMP --> SHARED
PROP --> ASYM
SHARED --> CHECK
ASYM --> CHECK
CHECK --> RESULT
%% CLASS ASSIGNMENTS %%
class PROP cli;
class COMP phase;
class SHARED handler;
class ASYM gap;
class CHECK detector;
class RESULT output;
Winner's Curse Assessment
| Factor |
Proposed Method Advantage |
Impact on Claimed Improvement |
| {tuning trials} |
{advantage} |
{estimated impact} |
| {engineering tricks} |
{advantage} |
{estimated impact} |
Process-vs-Method Attribution Analysis
- Method contribution: {estimated fraction}
- Tuning contribution: {estimated fraction}
- Engineering contribution: {estimated fraction}
- Data access contribution: {estimated fraction}
Key Findings
- {Description of most significant asymmetries and their impact on claimed improvements}
---
## Pre-Diagram Checklist
Before creating the diagram, verify:
- [ ] LOADED `/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
- `/make-experiment-diag` - Parent skill for lens selection
- `/mermaid` - MUST BE LOADED before creating diagram
- `/exp-lens-comparator-construction` - For baseline selection and construction adequacy
- `/exp-lens-sensitivity-robustness` - For sensitivity analysis across conditions
1---2name: exp-lens-fair-comparison3description: Create a comparison fairness matrix assessing whether alternatives are evaluated under symmetric constraints. Fairness lens answering "Are alternatives compared under symmetric constraints?"4---56# Fair Comparison Experimental Design Lens78**Philosophical Mode:** Fairness9**Primary Question:** "Are alternatives compared under symmetric constraints?"10**Focus:** Compute Budget Symmetry, Tuning Protocol Parity, Data Access Equality, Engineering Effort Balance, Winner's Curse1112## When to Use1314- Method comparisons where tuning effort differs15- Benchmark results where compute budgets are unequal16- Claims of SOTA that may reflect process differences17- User invokes `/exp-lens-fair-comparison` or `/make-experiment-diag fairness`1819## Critical Constraints2021**NEVER:**22- Modify any source code files23- Do not litter the codebase with useless comments, TODO markers, or explanatory annotations — the skill output and diagram speak for themselves2425**ALWAYS:**26- Build the full symmetry matrix — every method against every resource dimension27- Attribute improvements to method vs. process — both deserve accounting28- Flag undisclosed compute or tuning as a finding, not an assumption29- Assess the winner's curse: did the proposed method benefit from more selection pressure?30- BEFORE creating any diagram, LOAD the `/mermaid` skill using the Skill tool - this is MANDATORY3132---3334## Analysis Workflow3536### Step 1: Launch Parallel Exploration Subagents3738Spawn Explore subagents to investigate:3940**Compute & Resource Allocation**41- Find compute resources used per method42- Look for: gpu, tpu, hours, cost, memory, flops, compute_budget, machine, cluster4344**Tuning Protocol per Method**45- Find tuning procedures for each compared method46- Look for: grid_search, optuna, bayesian_opt, hyperband, tune, sweep, trials, budget, early_stop4748**Data Access & Preprocessing**49- Find whether all methods use the same data pipeline50- Look for: data_augmentation, preprocessing, feature, embedding, pretrained, extra_data, auxiliary5152**Engineering Effort Indicators**53- Find differential engineering investment54- Look for: custom, specialized, trick, hack, ensemble, post_process, calibrate, threshold_tune5556**Reporting Completeness**57- Find whether resource usage is disclosed58- Look for: report, disclose, computational_cost, wall_time, parameter_count, training_time5960### Step 2: Build Symmetry Matrix6162Build the symmetry matrix: rows = methods compared, columns = resource dimensions (compute, tuning, data, engineering, disclosure).6364For each cell:65- Is the allocation symmetric?66- If not, does the asymmetry favor the proposed method?67- Estimate the magnitude of bias from each asymmetry.6869### Step 3: Analyze Effort Attribution7071**CRITICAL — Analyze Effort Attribution:**72For every claimed improvement:73- What fraction of the improvement can be attributed to the method itself vs. differential engineering effort, tuning budget, or data access?7475### Step 4: Create the Diagram7677Use the mermaid skill conventions to create a symmetry diagram with:7879**Direction:** `LR` (methods flow through resource allocation to evaluation)8081**Subgraphs:**82- METHODS83- RESOURCE ALLOCATION84- EVALUATION8586**Node Styling:**87- `cli` class: Proposed method88- `phase` class: Comparator methods89- `handler` class: Shared resources90- `gap` class: Asymmetric resources91- `detector` class: Symmetry checks92- `output` class: Results9394### Step 5: Write Output9596Write the diagram to: `temp/exp-lens-fair-comparison/exp_diag_fair_comparison_{YYYY-MM-DD_HHMMSS}.md`9798---99100## Output Template101102```markdown103# Fair Comparison Analysis: {Experiment Name}104105**Lens:** Fair Comparison (Fairness)106**Question:** Are alternatives compared under symmetric constraints?107**Date:** {YYYY-MM-DD}108**Scope:** {What was analyzed}109110## Symmetry Matrix111112| Method | Compute | Tuning Budget | Data Access | Engineering | Disclosure |113|--------|---------|---------------|-------------|-------------|------------|114| {proposed method} | {allocation} | {budget} | {access} | {effort} | {disclosed?} |115| {comparator} | {allocation} | {budget} | {access} | {effort} | {disclosed?} |116117## Resource Disclosure118119| Resource Type | Proposed Method | Comparators | Symmetric? |120|---------------|-----------------|-------------|------------|121| {GPU hours} | {value} | {value} | {Yes/No} |122| {Tuning trials} | {value} | {value} | {Yes/No} |123| {Extra data} | {value} | {value} | {Yes/No} |124125## Symmetry Diagram126127```mermaid128%%{init: {'flowchart': {'nodeSpacing': 50, 'rankSpacing': 60, 'curve': 'basis'}}}%%129graph LR130 %% CLASS DEFINITIONS %%131 classDef cli fill:#1a237e,stroke:#7986cb,stroke-width:2px,color:#fff;132 classDef stateNode fill:#004d40,stroke:#4db6ac,stroke-width:2px,color:#fff;133 classDef handler fill:#e65100,stroke:#ffb74d,stroke-width:2px,color:#fff;134 classDef phase fill:#6a1b9a,stroke:#ba68c8,stroke-width:2px,color:#fff;135 classDef newComponent fill:#2e7d32,stroke:#81c784,stroke-width:2px,color:#fff;136 classDef output fill:#00695c,stroke:#4db6ac,stroke-width:2px,color:#fff;137 classDef detector fill:#b71c1c,stroke:#ef5350,stroke-width:2px,color:#fff;138 classDef gap fill:#ff6f00,stroke:#ffa726,stroke-width:2px,color:#000;139 classDef integration fill:#c62828,stroke:#ef9a9a,stroke-width:2px,color:#fff;140141 subgraph Methods ["METHODS"]142 direction TB143 PROP["Proposed Method<br/>━━━━━━━━━━<br/>Method under<br/>evaluation"]144 COMP["Comparator Methods<br/>━━━━━━━━━━<br/>Baseline and<br/>prior work"]145 end146147 subgraph Resources ["RESOURCE ALLOCATION"]148 direction TB149 SHARED["Shared Resources<br/>━━━━━━━━━━<br/>Same data, same<br/>evaluation protocol"]150 ASYM["Asymmetric Resources<br/>━━━━━━━━━━<br/>Differential compute<br/>or tuning budget"]151 CHECK["Symmetry Check<br/>━━━━━━━━━━<br/>Verify parity<br/>across methods"]152 end153154 subgraph Eval ["EVALUATION"]155 direction TB156 RESULT["Results<br/>━━━━━━━━━━<br/>Reported<br/>performance"]157 end158159 PROP --> SHARED160 COMP --> SHARED161 PROP --> ASYM162 SHARED --> CHECK163 ASYM --> CHECK164 CHECK --> RESULT165166 %% CLASS ASSIGNMENTS %%167 class PROP cli;168 class COMP phase;169 class SHARED handler;170 class ASYM gap;171 class CHECK detector;172 class RESULT output;173```174175## Winner's Curse Assessment176177| Factor | Proposed Method Advantage | Impact on Claimed Improvement |178|--------|--------------------------|-------------------------------|179| {tuning trials} | {advantage} | {estimated impact} |180| {engineering tricks} | {advantage} | {estimated impact} |181182## Process-vs-Method Attribution Analysis183184- Method contribution: {estimated fraction}185- Tuning contribution: {estimated fraction}186- Engineering contribution: {estimated fraction}187- Data access contribution: {estimated fraction}188189## Key Findings190191- {Description of most significant asymmetries and their impact on claimed improvements}192```193194---195196## Pre-Diagram Checklist197198Before creating the diagram, verify:199200- [ ] LOADED `/mermaid` skill using the Skill tool201- [ ] Using ONLY classDef styles from the mermaid skill (no invented colors)202- [ ] Diagram will include a color legend table203204---205206## Related Skills207208- `/make-experiment-diag` - Parent skill for lens selection209- `/mermaid` - MUST BE LOADED before creating diagram210- `/exp-lens-comparator-construction` - For baseline selection and construction adequacy211- `/exp-lens-sensitivity-robustness` - For sensitivity analysis across conditions