magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
2 min read

Manual on purpose

magus could automate each row below, and does not. Each is a place the human in the loop stays one.

stays manual because
disposing an agent request the request stays open until a person has seen what it names; a repeat does not ask again, and nothing here answers it for them
applying suggested changes a suggestion lands only when a person accepts it
writing the knowledge store notes are human-authored by construction: there is no author field to spoof, because authorship rides version control
sending a review a remark reaches a colleague under your name; an agent drafts into the session and a person sends the batch

All four would be cheap to build, and cheap is not the test. The test for any future row: does automating the step remove a repetition, or remove a rep? A repetition (the same build run again for no new information) is the tool's to eat, and the cache exists to eat it. A rep (reading the failure, deciding what it means, choosing what lands) is where judgment forms. When a workflow is tuned so far that its operator no longer forms the judgment it depends on, it has automated the wrong half. Each row above removes the person at the point where the mechanism needs their judgment, so each stays out.

Sending a review is the newest of them and the one with the most to give away, so its refusals are worth naming: no review command carries a --publish flag, a self-review is always a comment rather than an approval, and authorship is stamped from the transport a write arrived on rather than from what the writer claims. A batch waits for a person because publishing is one outward-facing act. A call per remark would turn the one act a person confirms into a series of small ones nobody does.

Enforced by

  • No review command carries a --publish flag.
  • session dispose takes a typed id.
  • Notes have no author field; authorship rides version control.

Good

The cache eats the repetition:

magus run test .
magus run test .

The second run replays; nothing new was learned by running it again.

Bad

magus session dispose --all --yes

magus has no such flag, on purpose. It would answer every open request without reading one, which is the rep the request existed to make someone do.

See also

designjudgmentagentsreview
Last updated (2df714e8)
Glossary

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). Op in full.

Ward

A coded diagnostic that inspects a resolved op and nudges or blocks an anti-pattern before it runs. Ward in full.

Cache

The content-addressed store magus consults before running a target, so unchanged work is skipped. Cache in full.

CI

An ordinary target you compose yourself with ctx.needs; magus does not hardcode its stages. It is the anchor magus affected ci keys off, and ci strips the rw charm. CI in full.

Agent

A model working through an agent host such as Claude Code, Codex, Cursor or OpenCode. magus treats an agent as one more caller of its CLI, MCP tools and console, held to the same checks as a person. Agent in full.

Tool

An action a model can call through its host: a name, a description, a typed input and a result. magus serves its tools over MCP, each a read of the workspace model or a run of the CLI it already has. Tool in full.

Session

An agent host's conversation, by the id the host delivers to its hooks. magus never mints one: a record with no session is unattributed, and the OS user it carries says whose account ran it. Session in full.

Dispose

The human act of closing an attention request: a judgment rendered, recorded with who and why. Distinct from resolving a review thread or a merge conflict: a disposition answers a request; it does not merge anything. Dispose in full.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate. Run in full.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.