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

list-parallel

A rule that is off by default: it reports a list item that opens with a verb where the others open with a noun phrase, or in another tense once a decisions table turns it on.

What it catches

A list item that opens with a verb where the others open with a noun phrase, or in another tense.

Dimension

structure: the reader has to reconstruct the order or the purpose. A finding is counted on the dimension of its rule, the cost it names to the reader.

Why

Google's developer style guide (developers.google.com/style/lists) asks for "the same syntax/structure for all list items in a given list", and Microsoft's (learn.microsoft.com/style-guide/scannable-content/lists) for items "consistent in structure", in capitalization and end punctuation alike. This repository already holds a guide's numbered steps to an imperative opener (step-verb) and a commit subject to the imperative mood (subject-mood); this is the same expectation for any list. Each item's first word is tagged in its sentence by the part-of-speech tagger, which is accurate on sentences but guesses on fragments ("Fixed", "Cache", "Set"), so only a list of 3 or more tagged items is judged, a form must hold two thirds of them, and only the items outside it are named. An adjective opens a noun phrase ("Fast builds"), so it counts as one. Tense is judged per list, so a current role's list may stay in the present while the rest are past. Precision is unmeasured, with no labeled firing yet, so it ships off.

Default decision

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

Kind Default
reference off
principle off
guide off
change-description off
agent-brief off
commit-message off
issue off
release-notes off
changelog off
review-summary off
review-inline off
review-reply off
agent-reply off

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": {"list-parallel": "deny"},
  "paths": {"blog/**": {"list-parallel": "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": "list-parallel", "code": "PRF1061", "decision": "off", "url": "https://eli.gladman.cc/magus/reference/proofread/list-parallel/"}

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

See also

proofreadruleslist-paralleloff
Last updated (2df714e8)
Earlier changes on this page (1)

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.

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.

Lease

The grant a holder takes on a job: the write and read paths that job declared, enforced in the checkout that took it with magus job exec. A job is the piece of work; a lease is permission over it. Lease in full.

Conventions

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