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

search-translation

A deny rule: it refuses a text search whose pattern a graph query provably answers with the same entities, and names what to run instead.

What it catches

A text search whose pattern a graph query provably answers with the same entities.

Why

The pattern is compiled in the tool's own dialect (BRE, ERE or fixed) and run against the graph's ids when the command is judged, so the deny names a query that was checked rather than one that looks equivalent. Three shapes qualify. A pattern that can only match MGS codes (MGS30[23], MGS30.., MGS302[0-9]\|MGS303[0-9]), over any path in the workspace, becomes magus query kind=diagnostic 'id=~^diagnostic:...$', and a single literal code keeps symbol-search's magus explain diagnostic:<code>. A pattern selecting every Markdown heading of the files searched (^#, ^#\+), when those lines match the section nodes the graph holds file for file and none sits in a code fence, becomes magus query kind=docsection 'id=~^docsection:<file>#'. A search of a magusfile whose every hit declares a target the graph holds becomes magus explain target:<project>:<name>. Anything else stays silent: -i, -v, -c, -l, -x, context flags, a level-specific heading pattern, a BZZ code, a line anchor on a code, a heading inside a fence, one hit that is a call or a comment, stdin, or a tree outside the workspace. Measured 2026-09-24: 14,773 searches, 45% of them alternations, and graph verbs used about 50 times less than grep.

Seeing it

A verdict names its rule in brackets, which is how you got here:

deny [search-translation]: ...

magus describe rule search-translation prints the same entry at a terminal, and magus describe rules lists every rule this workspace enforces.

See also

  • All rules - what this workspace enforces, deny first
  • The guard - how a verdict is reached and wired
guardrulessearch-translationdeny
Last updated (a9ff8609)
Glossary

Workspace

The magus root directory that owns a set of projects and shared config; the unit magus operates over. See workspace.

Project

A directory magus recognizes as a unit of work (it has a magusfile); the unit of caching, scheduling, and dependency tracking. See workspace.

Magusfile

The magusfile.buzz that declares a project's targets (as export funs) and binds its spells. See targets.

Target

A named operation (build, test, ...) you invoke with magus run <target>; it may compose a spell's tool-native operations and depend on other targets. See targets.

CI

An ordinary magusfile-defined target you compose yourself with magus\needs - magus does not hardcode its stages. Magus.RunCI treats it specially only in that it strips the rw charm, it is the anchor magus affected ci keys off, and a selected scope with no project declaring it is a load error rather than a silent no-op. See targets.

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.

Conventions

Placeholders

Angle brackets mark a value you replace with your own - never type the brackets:

magus run <target>
magus completion <shell>    # e.g. bash, zsh, fish

<target>, <path>, <shell>, <name> and the like are stand-ins, not literal text.