reach diff¶
Change one factor, hold the evaluation queries fixed, and report the empirical performance delta between two experimental arms.
Controlled Single-Factor A/B Testing¶
In prompt and skill engineering, changing multiple variables at once masks the root cause of regressions. reach diff compares two recorded runs (CONTROL vs TREATMENT), holding the evaluation queries constant while varying exactly one factor:
description: Same rivals and query set, but one or more skill descriptions were altered.rival: Same target skill and queries, but new competing skills were installed or removed from the catalog.scope: Same skills, but catalog size or listing budget parameters were adjusted.
Synopsis¶
Key Scenarios¶
Measure the impact of rewording descriptions between baseline and treatment runs:
reach diff accepts both raw probe .jsonl files and .artifact.json evaluation files directly:
Options¶
| Option | Type | Default | Description |
|---|---|---|---|
CONTROL |
Path | - | Recorded results for the baseline/control arm (JSONL or .artifact.json, required). |
TREATMENT |
Path | - | Recorded results for the treatment arm (JSONL or .artifact.json, required). |
--vary |
Choice | - | The single factor varied: description, rival, or scope (required). |
--queries-root |
Path | - | Root directory containing query sets if their paths moved since evaluation. |
--control-corpus |
Path | - | Corpus the control arm was probed against, if it moved. |
--treatment-corpus |
Path | - | Corpus the treatment arm was probed against, if it moved. |
--control-label |
String | Filename | Custom display label for the control arm. |
--treatment-label |
String | Filename | Custom display label for the treatment arm. |
--queries, -q |
Path | - | Subset query set file used to slice both arms before comparing. |
--filter-skill |
String | () |
Glob pattern(s) matching target skill names to slice both arms before comparing. |
--filter-id |
String | () |
Glob pattern(s) matching query IDs to slice both arms before comparing. |
--confidence |
Float | from reach.toml (0.95) |
Confidence level used to estimate the noise floor. |
--noise-inflation |
Float | from reach.toml (1.265) |
Multiplier to inflate estimated noise floor for over-dispersion. |
--format |
Choice | text |
How to render comparison: text, csv, json, jsonl. |
--config, -c |
Path | - | Path to custom reach.toml configuration file. |