The absence, not the refusal¶
On the MCP server promote does not exist: its tools read a result or measure a new one, and none of them writes a baseline. A refusal is a conversation an agent can reopen — argue with, retry, work around. An absence is not. The reasoning is in ADR 0011.
The surfaces an agent reaches¶
The MCP server¶
Its tools read what a run recorded and measure new runs.
Not there: promote.
Details: digline over MCP
The operator¶
It watches a suite on a schedule and opens an issue when a result needs a decision. Each cycle checks that promote still fails.
Not there: the remedy. Fixing the prompt belongs to an engineer or a coding agent, and the alert is the handover.
Details: the operator loop, its example
pytest-digline and the GitHub Action¶
pytest-digline puts the comparison in a pytest report; the GitHub Action comments it on the pull request and exits with digline's code.
Not there: a way to promote. No flag, fixture or marker in the plugin and no input in the Action makes a run the new baseline.
Details: pytest-digline, the GitHub Action
AGENTS.md and the skill¶
AGENTS.md is the judgment layer the tool does not encode: when to re-run, investigate or recommend. The same rules ship as a Claude Code skill, installed with the plugin digline@digline, and a test fails if their rules drift apart. In another agent, the skill alone installs with npx skills add digline/digline --skill operating-digline, taken from main rather than a release.
The plugin also asks you before an agent runs promote or register. That is a preference, not a wall: you can switch it off, and a command it does not recognise gets through. The wall is the reviewed diff, because baselines and the register are committed.
Not there: the approval. The first rule, below, leaves it to a person.
Details: AGENTS.md, operating-digline, the plugin
Never move a baseline on your own initiative, by any route. Assemble the evidence — the
compareoutput, the run key, what moved and why you believe it — and recommend. The human decides, and acts, or tells you to.
AGENTS.md, rule 1 — digline v1.0.3Judging what it did, not what it wrote¶
The agent under test, not the agent using digline.
An agent's sentence is not what moved the money. ToolsCalled holds which tools were called and in what order; ToolCalledWith holds the arguments one call carried. In the LangGraph example a dispatch agent must look an order up before refunding it and refund the figure the lookup returned — an agent that skips the lookup writes a good sentence, and no assertion on the text can see it. Both checks are listed under the assertions.