0.75.0

a16z-infra/JungleGym0.75.0Jul 12, 2026by takahirom

AI Summary

This release introduces reusable scenarios to reduce code duplication by allowing parameterized step definitions at the project level, modeled after GitHub Actions workflows. It also adds native support for running Android Studio Journeys XML files directly, eliminating the need for manual YAML conversion.

Key Highlights

  • Reusable scenarios with `uses`/`with`/`inputs` syntax for project-level step definitions
  • Parameterization support using `{{inputs.name}}` for deterministic steps
  • GUI support for managing reusable scenarios, including a library dialog
  • Direct Android Studio Journeys XML import support without conversion

New Features

  • Reusable Scenarios (Project-level step definitions)
  • Android Studio Journeys XML Import

Full Release Notes

## Reusable Scenarios

You can now define AI scenario parts once at the project level and call them from any scenario with parameters — modeled after GitHub Actions reusable workflows (`uses` / `with` / `inputs`).

```yaml
scenarios:
- id: "premium-content-with-paid-user"
  steps:
  - uses: "login"
    with: { user: "paid" }
  - uses: "play-premium-content"

reusableScenarios:
- id: "login"
  inputs:
    user: { required: true }
  goal: "Log in with the {{inputs.user}} account"
```

Previously, scenarios could only share steps as a common prefix via `dependency`, so the same steps in different scenario trees had to be copy-pasted. Reusable scenarios can be called from any position, nested (composites calling composites), and parameterized with `{{inputs.name}}` — which also works inside Maestro YAML referenced from a reusable scenario's initialization methods, enabling deterministic, parameterized steps with zero AI calls. Invalid references, cycles, and missing required inputs are all rejected when the project loads.

The GUI supports the whole workflow: a new "Reusable steps" scenario type, a Reusable Scenarios library dialog, and a "Make this reusable" action that extracts an existing scenario into the library without breaking scenarios that depend on it. Reports label each expanded step with its call chain, e.g. `premium-content-with-paid-user › login (user=paid)`.

See the [specification](https://github.com/takahirom/arbigent/blob/main/arbigent-reusable-scenarios-specification.md) for details.

## Android Studio Journeys XML Import

Arbigent can now run [Android Studio Journeys](https://developer.android.com/studio/gemini/journeys) test files directly — no conversion to project YAML needed:

```bash
arbigent run --project-file app/src/journeysTest/weather.journey.xml
# or run all journey files under a directory
arbigent run --project-file app/src/journeysTest/
```

Each journey becomes one scenario: the description and ordered actions become the goal, and the scenario id is derived from the file name for use with `--scenario-ids`.

## What's Changed
* Add Android Studio Journeys XML import support to CLI by @takahirom in https://github.com/takahirom/arbigent/pull/385
* Add reusable scenarios (uses/with/inputs) with GUI support by @takahirom in https://github.com/takahirom/arbigent/pull/386

**Full Changelog**: https://github.com/takahirom/arbigent/compare/0.74.0...0.75.0