Skip to content

Tooling and Validation

This page turns .github/prompts/tooling.prompt.md into contributor-facing documentation. If you need to set up the repo, run the package, or validate a change before review, start here.

Environment Setup

LAV2 expects Python 3.11 or newer. MuJoCo is required for the local simulation path, while GPU drivers are only relevant for Torch or simulator backends that need them.

For installation commands, use the dedicated Installation page. This page focuses on workflow after the environment is already set up.

Main Entry Points

The standard local runner entrypoints are:

lav2
uv run lav2
uv run -m lav2.controller

Use the module form when you want the entrypoint to remain explicit in logs or debug sessions.

Quality Checks

Preferred hook workflow with prek:

uv run prek install
uv run prek install --hook-type commit-msg
uv run prek run --all-files

Fallback hook workflow with Python pre-commit:

pre-commit install --hook-type commit-msg
pre-commit install
pre-commit run --all-files

Review Readiness

Before requesting review:

  • Keep the change scoped to the active Backlog task.
  • Record open questions, risks, and validation results in the task notes.
  • Run the relevant hooks and at least one runtime sanity check when behavior is affected.
  • Use Conventional Commit style for commit messages: type(scope): subject.

Sanity Checks

For local behavior checks, use the interactive runner:

uv run lav2
  • Choose mode 0 for the flight rotor stack.
  • Choose mode 1 for the tracked stack.
  • Watch for NaNs, actuator saturation, or missing asset failures.

For Isaac Lab integration, make sure your training or play script imports lav2.tasks.isaaclab, then pass a task such as --task Isaac-LAV2-Base-Direct-v0.

When To Update This Page

Update this page whenever .github/prompts/tooling.prompt.md, install commands, entrypoints, or validation commands change. The prompt file is still useful for agents, but this page should be the readable source for human contributors.