Skip to content

crv.lab

Experimental API

Policy elicitation and audit flows are still evolving. Since: 2025-09-25.

crv.lab

crv.lab — Policy building, tasks, probes, and audit (IO‑first helpers).

Responsibilities

  • Build and manage persona policies for offline/remote elicitation and fast sweeps.
  • Define tasks and probes for controlled scenario generation and auditing.
  • Produce tidy artifacts and (optionally) index decisions/policy into canonical IO tables (crv.io).
  • Remain read‑write at the artifact layer, but avoid duplicating world logic.

Public API

  • io_helpers — IO‑first helpers for writing/reading lab artifacts.
  • policy_builder — Persona policy authoring/elicitation (remote/local).
  • tasks — Orchestration for scenario bundles and runner glue.
  • probes — Probes and audits that summarize runs.
  • audit — Higher‑level audit/report writers.

Import DAG discipline

  • Depends on: stdlib, crv.core, crv.io (Dataset), optionally pydantic/polars.
  • Must not import crv.world runtime; any world reading should use IO via crv.io selectors.
  • Must not import crv.viz dashboards (viz remains read‑only and can use lab outputs).

Examples

# Write a tidy artifact for a lab sweep (IO-first)  # doctest: +SKIP
from crv.lab.io_helpers import write_tidy_artifact  # doctest: +SKIP
from crv.io import IoSettings, Dataset  # doctest: +SKIP
settings = IoSettings(root_dir="runs/out")  # doctest: +SKIP
ds = Dataset(settings, run_id="demo_abcdef")  # doctest: +SKIP
write_tidy_artifact(ds, payload={"persona": "baseline", "result": "ok"})  # doctest: +SKIP

References