40 lines
3.0 KiB
Markdown
40 lines
3.0 KiB
Markdown
# 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 8–style 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`.
|