Skip to content

Benchmark: add an expo-agent-cli arm to the agent benchmark driver #854

Description

@janicduplessis

Problem

The agent benchmark driver only knows two arms, stim and control. Expo published @expo/agent-cli (1.0.16, 2026-09-16), an agent-facing CLI over Expo CLI / EAS CLI / expo-doctor with status, dev --ios, smoke, and agents:setup. There is no way to measure it against Stim with the existing readiness protocol without hand-editing the driver, so the comparison cannot be reproduced or audited.

Evidence

  • scripts/agent-benchmark/driver.mjs gates dispatch, smoke, prompts, PATH, skill profile, watcher device selection, collection, cleanup, and report pairing on arm === 'stim' / arm === 'control'; run-guards.mjs hardcodes arms = new Set(['stim', 'control']) for targets.json.
  • npm view @expo/agent-cli version1.0.16; expo-agent-cli dev --help shows it opens the app on the booted simulator, so the control device rules (create and boot a named iPhone 17 / iOS 26.5 simulator) still apply.
  • expo/skills ships no agent-cli skill; the agent guidance agents:setup installs is the managed AGENTS.md block plus help workflow.

Cause

Arm identity is a two-value enum spread across the driver rather than a description of what differs between arms (tool on PATH, guidance, prompt line, device rules).

Fix idea

Add an expo-agent-cli arm that inherits every control rule (no Stim on PATH, same sandbox policy, benchmark-named simulator, agent-device proof, control cleanup) and differs only by a pinned expo-agent-cli shim on PATH, a guidance file rendered from the agents:setup managed block and help workflow, and the prompt line telling the agent to use it in place of Expo CLI. Report pairs stim against any non-stim arm. Validate with one iOS JavaScript cell per arm on a root that reuses the 1.0.0 golden.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions