Skip to content

Principles

CVSM is small on purpose: a few rules, each answering one major way agent-driven research goes wrong. These principles explain why it looks the way it does, and what it deliberately leaves to you.

Workflow state lives in issues, PRs, checks and branch protection, and run records live in MLflow. There is no CVSM server, database or CLI. You can see everything in GitHub’s own UI, and adopting CVSM is copying files.

The repo holds no state, plan or progress files, and a session is never the record. Every state change goes to GitHub or git as it happens, so a session can end at any moment without losing anything, and a fresh session reads where things stand. See State.

CVSM records facts and leaves judgements to you

Section titled “CVSM records facts and leaves judgements to you”

CVSM records facts and shows differences. It does not choose seeds, design experiments, decide when to rerun, or judge whether runs are comparable; you set those in the study spec and your instructions. It also leaves analysis, visualization and how an agent works inside a task to you.

Agents keep going until they reach the target, one of four gates, or a blocker. The gates are the same for every project, and they are the only planned stops. The human decides only in sessions; agents carry out and record every action on GitHub. See Work in a session.

Each rule sits where it can be enforced best. What a script can check, guard and merge.py check. What no script can check is one line in AGENTS.md, held by the fresh-context review. Changes that need a human merge get a second look when you merge them.

Rules are short and concrete: AGENTS.md is at most 80 lines and each skill at most 120. They assume an agent that follows clearly written rules. Scripts fix the process, but they don’t defend against malformed input, forgery or outsiders, and reviewers don’t ask for such defenses unless a task requires them.

CVSM ships no adapters for clusters, schedulers, storage or tracking services. run.py and results.py are a single-machine reference. Each adopter fits its own cluster, scheduler (for example SLURM) and tracking backend through its own issues, and keeps the interfaces that stay fixed.