Project
A project is an internal Onyx record for a GitHub repository, optionally scoped byprojectPath. Onyx creates or reuses it automatically when the first campaign starts from that repository.
Onyx stores project metadata for search, permissions, graph rendering, and repository sync, while git remains the source of truth for code.
Campaign
A campaign is a research direction. It is a logical Onyx track, not a mutable git history branch. Campaigns track:- name and description;
- metric name;
- metric unit;
- direction, either
maximizeorminimize; - optional creation-commit provenance;
- active and closed hypotheses;
- bounded sessions with immutable settlement cutoffs;
- the evaluation revision used by the newest session.
active or archived. The metric contract is immutable;
changing metric name, unit, or direction requires another campaign. Archiving
is reversible and makes the campaign read-only. It is rejected while active or
stale sessions remain.
Hypothesis
A hypothesis is a conceptual research option withactive or closed state.
It does not own a git base. Closing it immediately cancels its assignments and
workers in every open session; reopening only makes it eligible for future
sessions.
Session and Assignment
Everyonyx research run creates a new bounded session. Sessions are never
resumed. A session records its repository/setup snapshot, evaluation revision,
experiment/deadline bounds, mutable worker target, and an immutable endedAt
cutoff when it ends. Open-session liveness is derived as starting, active,
stale, or abandoned.
Each selected hypothesis gets one immutable session assignment with its own
starting commit. Adding a hypothesis during a run does not change that session;
it becomes available to the next one.
Evaluation Revision
An evaluation revision is a comparison cohort identified by a deterministic fingerprint of the metric contract, required metric step, normalized metric tool, and its committed declared inputs. Metrics, charts, and hypothesis best projections are scoped to a revision. Onyx does not combine incomparable revisions into one leaderboard.Experiment
An experiment is one recorded run with an immutable result commit. Experiments track:- base commit SHA;
- result commit SHA;
- result ref, usually
refs/onyx/experiments/<campaignId>/<runRef>; - status;
- primary metric value;
- secondary metrics;
- agent notes;
- output summary;
- optional checks result;
- optional setup, hypothesis, worker, and provenance links.
- required session, assignment, and evaluation-revision links.