review_add
Register an existing render, sheet, or A/B member for a review round by pointing a name at its file—no copying. Controls must match a baseline's sha256 to be accepted.
Instructions
Register a rendered file, sheet or A/B member for proofcut review serve.
Never copies source — a render already lives in renders/, a sheet in
reframe_sheet's own directory — this just points name at it, so a
served round has something to stream and a verdict has something to
attach to.
Registering a name that already exists replaces that entry, and the
verdict recorded against it stays — so re-pointing a name at a different
file leaves yesterday's answer attached to today's bytes. Register the new
file under a new name unless replacing it is what you mean.
kind is one of render, sheet, ab, control. A control
requires baseline, the name of an already-registered item, and the two
files' sha256 must match — a mismatch refuses the call. This is the
rule the round that went wrong exists to enforce (HISTORY.md § The
bumper the teaser never had): a page once served three cuts, one
mislabelled "control" when it was a different, later render. Nothing is
labelled a control here unless it is byte-identical to what it claims.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | One of `render`, `sheet`, `ab`, `control`. | |
| name | Yes | What to call this item in the served round. Re-using a name replaces that entry while its verdict stays attached. | |
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| source | Yes | The file to point at — never copied. A render already lives in `renders/`, a sheet in the sheet directory. | |
| baseline | No | Required for `kind="control"`: the name of the already-registered item this one claims to be identical to. Both files' sha256 must match or the call is refused — nothing is labelled a control here unless it is byte-identical to what it claims. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||