leaderboard / agents.md
innixma's picture
rename to agents.md
be1498d
|
Raw
History Blame Contribute Delete
2.4 kB
# AGENTS.md
Guidance for AI coding agents working in this repository.
## What this repo is
Frontend code for the TabArena leaderboard, deployed as a Gradio app on a Hugging Face Space. The leaderboard ranks tabular ML models across tasks, splits, and dataset subsets.
- Entrypoint: `main.py` (Gradio app; HF Space runs it via the `app_file` declared in `README.md` frontmatter).
- UI text and copy: `website_texts.py`.
- Static constants (e.g. model-type emoji map): `constants.py`.
- Precomputed artifacts (CSVs + zipped PNGs): `data/imputation_{no,yes}/splits_{...}/tasks_{...}/datasets_{...}/`.
- Python: requires 3.12+. Dependencies pinned via `pyproject.toml`.
## Local dev
```bash
pip install -e ".[dev]" # or: uv pip install -r pyproject.toml
python main.py # launches the Gradio app
```
## Data pipeline (not regenerated in this repo)
Leaderboard data is produced upstream and dropped into `data/`:
1. Run `run_generate_website_artifacts.py` in the autogluon/tabarena repo.
2. Clear the local `data/` directory.
3. Unzip `clean_website_artifacts.zip` into `data/`.
Do not edit files under `data/` by hand β€” they are generated artifacts.
## Architecture notes
- `LBMatrix` (in `main.py`) enumerates the leaderboard variants along four axes: `imputation`, `splits`, `tasks`, `datasets`. The first element of each list is the default selection for that axis β€” changing list order changes both the default tab and the rendering order.
- `LBContainer` loads `website_leaderboard.csv` and lazily unzips the per-view PNGs from `data/...`.
- The reactive Gradio render is driven by four `gr.State` values, one per axis; selecting a tab updates the corresponding state and triggers `render_details`.
## Conventions
- Keep changes minimal β€” this is a small display app, not a framework. Avoid speculative abstraction.
- Don't add comments that just describe what code does; the file is short enough to read.
- User-facing copy lives in `website_texts.py`. Update it there, not inline.
- Version bumps: edit `version` in `pyproject.toml` and the matching changelog entry in `website_texts.py` (`VERSION_HISTORY_BUTTON_TEXT`).
## Things to verify before reporting a UI change as done
- Launch `python main.py` and click through the affected tabs in a browser.
- Type checks and unit tests aren't meaningful here (none configured) β€” manual verification is the bar.