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

voice-drift

An advisory by default: it explains, and blocks nothing, on a draft that reads further from its author's own texts of its kind than 95 percent of them do, or a commit subject longer than 95 percent of the author's.

What it catches

A draft that reads further from its author's own texts of its kind than 95 percent of them do, or a commit subject longer than 95 percent of the author's.

Dimension

stance: the text reads as a verdict on a person, or as addressed to someone else. A finding is counted on the dimension of its rule, the cost it names to the reader.

Why

Runs only with a voice file, which proofread voice build measures from the author's own texts, 1,000 words or more of a kind, shuffled and pooled into windows of 200 words or more. A draft of 200 words or more is ranked on commas, parentheses, colons, semicolons, "I", "and", repeated part-of-speech 4-grams, part-of-speech compression and participial clauses, each only in the direction agent drafts move, and the ranks combine by Fisher's method. The draft is scored on the features it has data for, against the author's windows with data for all of them, and the draft and each of those windows are scored alike against the rest; the draft drifts when it scores past all but 5 percent of the windows. A commit message is held to the 95th percentile of the author's subject lengths instead. The features and their directions come from voice-calibration, which measured one author's held-out text against agent drafts and against light agent edits of that text: the rule separates drafts, not edits. No firing has been labeled, so the rule advises.

Default decision

The code is PRF1040. The decision depends on the kind of text judged:

Kind Default
change-description advise
review-reply advise
commit-message advise
issue advise
review-summary advise
review-inline advise

Changing it

A decisions table sets this rule to deny, advise or off, for everything judged or for the files a glob matches. Proofread reads the table from the file its -decisions flag names:

{
  "rules": {"voice-drift": "deny"},
  "paths": {"blog/**": {"voice-drift": "off"}}
}

rules applies to every file. A glob in paths applies to the files it matches, and the last match wins. A rule set to off never reports.

Seeing it

A finding names the rule, its code and the decision that applies, and links here:

{"rule": "voice-drift", "code": "PRF1040", "decision": "advise", "url": "https://eli.gladman.cc/magus/reference/proofread/voice-drift/"}

proofread rules prints this entry with every other rule's.

See also

proofreadrulesvoice-driftadvise
Last updated (29d8b3de)
Earlier changes on this page (1)

Full history ↗ · Blame source ↗

Glossary

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.

Pool

The concurrency pool: the shared set of slots that caps how many targets run in parallel on one machine. Its capacity defaults to MAGUS_CONCURRENCY, then 4 on GitHub-hosted runners, then min(NumCPU, 8); magus status and the dashboard report it live. Pool in full.

Percentile

A latency value at a given rank, interpolated from a histogram's buckets: p50 is the median, p95 and p99 are the tail that most latency budgets care about. Percentile 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.

Window

The terminal a command runs in. It keys fire-once notices for a caller no host gave a session, and is never recorded as a session. Window 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.

Advisor

One read-only check from the advice suite: it reads the changeset through magus and writes one titled section of findings. The same advisors run as a pull request comment in CI and inside magus diff --impact locally. Advisor in full.

Conventions

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