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

nominalizations

An advisory by default: it explains, and blocks nothing, on a text whose verbs are turned into nouns (validation, agreement, stability) at a generated-writing rate.

What it catches

A text whose verbs are turned into nouns (validation, agreement, stability) at a generated-writing rate.

Dimension

economy: words that carry nothing. A finding is counted on the dimension of its rule, the cost it names to the reader.

Why

Reinhart et al. (PNAS 2025) measured GPT-4o using nominalizations at 2.1 times the human rate. A suffix is a guess at a nominalization, so the rule advises over a whole text and never points at one word. Over texts of 200 words or more, measured 2026-10-10: 808 agent pull request bodies from the AIDev set ran 55.2 per 1000 pooled (p50 49.8), and 79 percent run over the cap of 30; this repository's 96 hand-written docs pages ran 12.2 (p90 20.3, 1 percent over) and its 61 commit bodies 12.6 (2 percent over), both written by people and agents together. Review comments ran 14.5 by people and 35.4 by bots, pooled.

Default decision

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

Kind Default
change-description advise
reference advise
principle advise
guide advise
issue 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": {"nominalizations": "deny"},
  "paths": {"blog/**": {"nominalizations": "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": "nominalizations", "code": "PRF4021", "decision": "advise", "url": "https://eli.gladman.cc/magus/reference/proofread/nominalizations/"}

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

See also

proofreadrulesnominalizationsadvise
Last updated (2df714e8)
Earlier changes on this page (2)

Full history ↗ · Blame source ↗

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.

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.

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.

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.