Contributing
How to approach changes in this repository and where to start reading before you edit.
This section is for people who want to change the repository itself.
That can mean:
- fixing a bug
- adding or changing an environment
- adding a benchmark task
- changing the reference agent loops
- working on the remote stack or dashboards
Start By Finding The Right Layer
Most changes belong to one of these three parts. If you start by locating the right layer, the rest of the change is usually much easier.
Core Framework
src/gym_anything/ — runtime, runners, verification, remote stack
Benchmarks
benchmarks/cua_world/ — environments, tasks, splits, support files
Agents
agents/ — reference agents and evaluation programs
Read Before You Edit
Always read the existing code and tests for a feature before changing it.
A good default reading order is:
- the public entry point for the feature you want to change
- the test file that already covers that behavior
- one nearby real example
Examples:
- for environment lifecycle changes: start with
src/gym_anything/env.py - for CLI changes: start with
src/gym_anything/cli.py - for task checking: start with
src/gym_anything/verification/ - for agent loop changes: start with
agents/evaluation/run_single.py
Prefer Small, Local Changes
Try to keep each change inside the layer that owns it.
For example:
- a benchmark task change should usually stay inside one task folder
- an agent prompt or parsing change should usually stay inside
agents/ - a runtime behavior change should usually stay inside
src/gym_anything/
If a change crosses layers, make sure the interface between them is still clear.
Run The Smallest Useful Checks
Don't wait until the end to run the full suite.
After a meaningful change, run the most relevant targeted tests first. Then run broader checks once the local behavior looks right.