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

tool-length

An advisory by default: it explains, and blocks nothing, on a tool or skill description over 1024 runes.

What it catches

A tool or skill description over 1024 runes.

Dimension

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

Why

Every description is in the model's context in every session, whether or not the tool is called. Over the 22 descriptions magus ships the median is 586 runes (96 words), 20 sit between 98 and 704, and the 2 MCP tools client (1207) and diff (1144) run past 1024, the length the Agent Skills format allows a skill description. The house paragraph cap of 60 words (terse-paragraph) would fire on 19 of the 22, so it is not used here. The rule only advises while 2 firings are all there are.

Default decision

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

Kind Default
tool-description 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": {"tool-length": "deny"},
  "paths": {"blog/**": {"tool-length": "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": "tool-length", "code": "PRF9022", "decision": "advise", "url": "https://eli.gladman.cc/magus/reference/proofread/tool-length/"}

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

See also

proofreadrulestool-lengthadvise
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.

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.

Skill

A packaged set of instructions an agent host loads when a task matches its description: a directory holding a SKILL.md. magus ships its magus-* skills in the binary and writes them with magus agent install. Skill 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.

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.