Quickstart¶
Everything below runs offline on the synthetic backend and a local DuckLake catalog; the
recorded OLS responses under tests/fixtures/ols/ stand in for the EMBL-EBI API.
export MESA_ANYJEV_OLS__FIXTURES=replay MESA_ANYJEV_POLICY__PROFILE=dev
uv run mesa-anyjev annotate --card tests/fixtures/cards/DP1.10003.001.brd_countdata.md \
--backend fake --planner static \
--provenance duckdb:///$PWD/.local/prov.duckdb --out .local/run.json
annotate decides and proposes; it writes nothing to iRODS. The run id, the proposals with
their probability and level, and the neon-avu-eval result shape are in .local/run.json.
The shipped policy is proposed-only, so the curator accepts the run:
RUN=$(jq -r .run_id .local/run.json)
uv run mesa-anyjev apply --run-id $RUN --accept proposed \
--provenance duckdb:///$PWD/.local/prov.duckdb \
--local-ducklake duckdb:///$PWD/.local/lake.duckdb \
--irods-path /local/mesa-anyjev/DP1.10003.001/brd_countdata.csv --actor $USER
uv run mesa-anyjev explain --provenance duckdb:///$PWD/.local/prov.duckdb \
--path /local/mesa-anyjev/DP1.10003.001/brd_countdata.csv
apply writes one mesa-ducklake snapshot for the run and path with the source tag
mesa-anyjev:apply:human; explain joins each AVU back to the decision that produced it,
its level and its snapshot id.
To decide with a real model, see Gateway.