Files
roboimi/AGENTS.md
T

40 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Repository Guidelines
## Project Structure & Module Organization
- `roboimi/` is the main package: simulation code in `roboimi/envs/`, assets/helpers in `roboimi/assets/`, VLA models/config in `roboimi/vla/`, and runnable scripts in `roboimi/demos/` plus `roboimi/demos/vla_scripts/`.
- `tests/` holds `unittest` regressions for training, rollout, dataset loading, and asset resolution.
- `docs/superpowers/` stores design specs and plans.
- `docs/experiment-guide.md` store how beginning experiment
- `runs/`, `outputs/`, `swanlog/`, `.worktrees/`, and `checkpoints/` are generated experiment artifacts, not source modules.
## Build, Test, and Development Commands
- `conda env create -f environment.yml && conda activate roboimi` — create the standard environment.
- `pip install -e .` — editable install.
- `python -m unittest discover -s tests -p 'test_*.py'` — run all tests.
- `python -m unittest tests.test_train_vla_rollout_validation -v` — run one focused test module.
- `python roboimi/vla/scripts/calculate_stats.py` — regenerate normalization stats.
- `python roboimi/demos/vla_scripts/train_vla.py train.max_steps=1000` — quick training smoke test.
- `python roboimi/demos/vla_scripts/eval_vla.py eval.ckpt_path=checkpoints/vla_model_best.pt eval.num_episodes=5` — evaluate a checkpoint.
## Coding Style & Naming Conventions
- Use Python, 4-space indentation, and PEP 8style naming.
- Prefer `snake_case` for files, functions, variables, and Hydra keys; use `CamelCase` for classes.
- Match existing Hydra namespaces such as `train.*`, `eval.*`, and `agent.*`.
- Keep diffs focused and imports tidy. Experiment names usually encode host/GPU, e.g. `...-l20g3-...`, `...-5880g1-...`, or `...-5090-...`.
## Testing Guidelines
- Tests use `unittest` and `unittest.mock`.
- Name files `tests/test_*.py` and classes `*Test`.
- Add direct regression coverage for changes to training, rollout, config, or dataset code paths.
- No strict coverage target is defined, but changed behavior should be tested and affected suites should pass before review.
## Commit & Pull Request Guidelines
- Follow existing prefixes: `feat`, `fix`, `chore`, `docs`, `debug`, optionally with scope, e.g. `feat(eval): export rollout video timing`.
- Keep commit messages imperative and specific.
- PRs should state the goal, touched configs/scripts, exact test commands, and dataset/checkpoint assumptions. Attach visual artifacts only when outputs change.
## Experiment Host Reference
- **Local workstation (`droid-z790eagleax`)** — local shell; **1× RTX 5090 32 GB**; env: `/home/droid/.conda/envs/roboimi/bin/python`.
- **5880 node (`droid-System-Product-Name`)** — username: `droid`; IP: `100.73.14.65`; connect with `ssh droid@100.73.14.65`; **2× RTX 5880 Ada 48 GB**; env: `/home/droid/miniforge3/envs/roboimi/bin/python`; trusted tailnet host.
- **L20 node (`droid-G5500-V7`)** — username: `droid`; IP: `100.119.99.14`; connect with `ssh droid@100.119.99.14`; **8× NVIDIA L20 46 GB**; env: `/home/droid/miniforge3/envs/roboimi/bin/python`; store large experiment data under `/data`.