orx-experiment-tree
A project is a tree of experiment nodes. The root (baseline) holds the starting code and a run command — the single shell command that trains or evaluates the node and prints its results to the run log. Every other node is a child branched off a parent, inheriting its code and its run command. The two rules this depends on — never edit a node a run has answered and the run command + env is a fixed contract — are the cardinal rules; everything below assumes them.
Create a node only when a planned run will establish a baseline or test a hypothesis relevant to the project. Put a code change on that node only if it serves that baseline or hypothesis. Do not create nodes for unrelated cleanup, refactors, bug fixes, or dependency updates.
Before the first launch
Follow the session playbook's Python policy. Before launching, resolve the train/evaluation command and compute-specific requirements; ask only if the project setup leaves these or the chosen workflow unclear. Record the durable setup and execution recipe in the project's run command.