reach eval¶
Measure whether a catalog's skills are reachable when resident alongside their rivals. If no labeled query set exists, reach eval automatically drafts one.
[!WARNING] Agent Execution Safety
reach evalexecutes live agent subprocesses that can run tools and shell commands on the host system. When testing third-party or untrusted skills, execute inside an isolated container sandbox (e.g. Docker or Google Cloud Run sandboxes) or use--agent keyword(an in-memory lexical matching engine that matches query terms against skill manifests via compiled regexes and BM25 scoring without running subprocesses or external APIs). Automated non-interactive environments must explicitly pass--yes/-yor setREACH_YES=1to bypass the safety confirmation gate.
Synopsis¶
Key Scenarios¶
Quick single-skill evaluation defaults to 3 attempts per query (override with --attempts):
Synthesize queries for all resident skills and immediately probe the catalog in one step:
Tune the number of drafted queries per skill with --count (default: 3):
Evaluate reachability directly on skills pulled from Google Cloud Agent Registry:
Simulate catalog assembly, prompt generation, and probe loops without executing live model API calls:
Specify a direct path to a skill directory (parent corpus is auto-detected):
Options¶
Study & Corpus¶
| Option | Type | Description |
|---|---|---|
[TARGET] |
String / Path | One skill to evaluate, by name or directory (requests a quick run). |
--skill |
String | Filter evaluation queries or auto-drafting to specific skill name(s) (repeatable). |
--query |
String | Probe this exact question rather than drafting one (repeatable). |
--expected |
String | The skill every --query should reach; defaults to the skill named. |
--skills |
Path | Root directory containing skills or a catalog tree. |
--queries |
Path | Labeled evaluation queries file (.json, .yaml/.yml, .jsonl, or .csv). If omitted, queries are automatically drafted. |
--workdir |
Path | Temporary workspace to install the competitive catalog into. |
--catalog |
String | Catalog identifier; defaults to the query set's catalog ID. |
--partial |
Flag | Allow a query set that targets only a subset of the catalog's skills. |
--rescope |
Flag | Probe the query set against a catalog other than the one it was labeled in. |
--tag |
String | Short semantic label for this run (e.g. v1-baseline), displayed in headers. |
--run-dir |
Path | Directory containing default queries, workdir, and output paths. |
Agent Registry Options¶
| Option | Type | Default | Description |
|---|---|---|---|
--project, -p |
String | None | Google Cloud project ID hosting the Agent Registry. |
--location |
String | "global" |
Agent Registry location endpoint (global, us, eu). |
--publisher |
String | None | Filter registry skills by publisher identifier (e.g. cloud.google.com). |
--registry |
Flag | false |
Target Google Cloud Agent Registry instead of local workspace. |
--fresh |
Flag | false |
Bypass cached metadata and re-fetch latest skill definitions. |
--no-cache |
Flag | false |
Run without reading or writing local disk cache. |
Catalog Assembly¶
| Option | Type | Default | Description |
|---|---|---|---|
--mode |
Choice | all |
Assembly mode: all (whole catalog), neighborhood (closest rivals), singleton. |
--catalog-size |
Integer | - | Number of skills per neighborhood catalog. |
--rivals |
Integer | - | Number of top-ranked rival skills per neighborhood catalog. |
--seed |
Integer | - | Random seed for catalog filler selection. |
Runtime & Execution¶
| Option | Type | Default | Description |
|---|---|---|---|
--agent |
Choice | from reach.toml |
Target runtime: antigravity-cli, antigravity-sdk, claude-code, goose, keyword, pi. |
--model, -m |
String | Default model | Target model identifier. |
--effort, -e |
String | Default effort | Reasoning effort level (e.g. low, medium, high). |
--timeout |
Integer | - | Seconds allowed per probe attempt. |
--max-turns, -T |
Integer | 3 |
Maximum conversation turns to execute and evaluate. |
--early-exit / --no-early-exit |
Flag | true |
Terminate multi-turn probe immediately when target skill is invoked. |
--opt, -O |
String | - | Agent runtime option as key=value (repeatable). |
--attempts |
Integer | 5 (3 for quick eval) |
Number of probe attempts per query for consistency estimation. |
--retries |
Integer | 2 |
Retry attempts for failed model invocations. |
--backoff |
Float | 5.0 |
Initial backoff time in seconds before the first retry. |
--pause |
Float | 0.0 |
Seconds to pause between probes to respect rate limits. |
--workers, -j |
Integer | 1 |
Number of concurrent probes to run. |
--auto |
Flag | false |
Automatically draft queries for all skills and probe the catalog in one step. |
--reasoning |
Flag | false |
Display model reasoning / thought traces directly beneath misrouted collision rows. |
--no-resume |
Flag | false |
Re-probe everything, ignoring results already in output. |
--append-across-arms |
Flag | false |
Add probes to an --out recorded under a different configuration. |
--allow-truncation |
Flag | false |
Probe a catalog too wide for the runtime's skill listing without error. |
--yes, -y |
Flag | false |
Bypass interactive safety confirmation prompts. |
Query Generation¶
| Option | Type | Default | Description |
|---|---|---|---|
--skill |
String | All | Specific skill name(s) to draft queries for (repeatable). |
--count |
Integer | 3 |
Number of queries to draft per target skill. |
--generator-model |
String | gemini-3.8-flash |
Model used to draft synthetic queries. |
--generator-agent |
String | Auto-detected | Agent driver used to draft synthetic queries, overriding the probe agent. |
--generator-arm |
String | content |
Which generation prompt to use (content, behavioral, etc.). |
--top-rivals |
Integer | 3 |
Maximum number of top-ranked rival skills to include in generation prompts. |
--draft-concurrency |
Integer | 1 |
Targets to draft concurrently. |
--adversarial |
Flag | false |
Synthesize near-miss adversarial negative queries sharing target vocabulary. |
--adversarial-count |
Integer | 1 |
Number of adversarial negative queries per target. |
Recording & Artifacts¶
| Option | Type | Default | Description |
|---|---|---|---|
--out, -o |
Path | .reach/eval.json |
Destination for the evaluation artifact. |
--records |
Path | - | JSONL file to stream raw probe results to. |
--format |
Choice | text |
Output format: text, json, jsonl, csv. |
--save |
Path | - | Save a quick run's query set, citations, and artifact to DIR before scratch cleanup. |
--dry-run |
Flag | false |
Simulate drafting and probing without executing model calls or saving results. |
--global, -g |
Flag | false |
Discover and inspect skills from user global configuration (~/). |
--quiet, -q |
Flag | false |
Suppress terminal progress and summary view. |
--verbose |
Flag | false |
Display full hexadecimal hash digests alongside badges. |
--config |
Path | - | Path to custom reach.toml configuration file. |