Every page tagged magusfile. Tags cut across the directory tree, so these pages come from different sections.
Debugging magusfilesDrop into an interactive Buzz REPL with magusfile bindings preloaded, or set magus\pry() breakpoints mid-target to inspect frames, locals, and state.
DependenciesThe two dependency mechanisms in magus - magus\needs (target-level, imperative) and depends_on (project-level, declarative) - how they interact, and how a cross-project needs folds into both.
EnginesUnderstand the small engine.Engine seam that lets magus run magusfiles on the embedded Buzz VM and how a new scripting language would plug in.
Getting startedA linear, CLI-first walkthrough from installing magus to running your first spell-composed target and a ci pipeline.
MGS1001: no ci target definedFires when magus ci runs but no project in the selected scope declares a ci target, meaning the CI anchor would silently do nothing.
MGS1002: spell import shadowedFires when a spells/<name> in a nested project is shadowed by a same-named spell higher in the tree, because spell imports resolve root-wins so the deeper definition is dead.
MGS1003: bespoke phase-fragment target nameDoctor advice, not a failure. Notes a target named after a static-analysis or formatting subset (typecheck, vet, audit, style, prettify) that would usually be better composed into lint or format.
MGS1004: unreached footprint declarationFires when a ctx.readsFiles or ctx.writesFiles call is not statically reachable from a target body, so the declared glob never enters a cache key.
MGS1005: redundant footprint globFires when a per-target magus\outputs glob is already declared project-wide, making it redundant.
MGS1006: unknown targetFires when a magusfile references a target that no project declares, whether run from the CLI or wired via a dependency like magus\needs.
MGS1007: target dependency cycleFires when target dependencies form a cycle, so a target would have to run before itself. Detected across projects during cross-project dispatch.
MGS1008: target missing its context parameterFires when an exported magusfile function is not a valid target because its first parameter is not a magus\Context. The signature is the contract magus reads statically to build the graph.
MGS1009: target never replays from cacheFires when a target has executed many times and never once replayed from cache, which almost always means its declared footprint is wider than what it actually reads.
MGS1010: affected set could not be computedFires when magus cannot derive a changed-file set from the VCS and selects every project as a safety net, turning an incremental run into a full build.
MGS1011: cross-project output names an unusable ownerFires at load when a target declares ctx.writesFiles into another project that magus cannot resolve or did not discover, so nothing would own, clean, or regenerate the file.
MGS1012: cross-project output forms a dependency cycleFires at load when one target both reads from and writes into the same project, because a cross-project input and a cross-project output imply opposite build-order edges.
MGS1013: cross-project output glob escapes its ownerFires at load when the glob half of a cross-project ctx.writesFiles is absolute or contains .., so it would resolve outside the project that owns it.
MGS1014: cross-project output was never producedFires when a target declares an output into another project's tree but the run produced no file matching it, so the cache would record an incomplete result.
MGS1015: cross-project dependency names an unresolvable projectFires at load when ctx.needs references a target through a project import whose path does not resolve to a path in this workspace, so the dependency edge would be dropped and the affected set would silently under-report.
MGS1016: workspace-local Go replace directives driftedFires when a Go module requires another module in the same magus workspace but its go.mod does not replace it at the workspace-relative path.
MGS1017: magusfile is not a spellFires when a magusfile imports magus/spell/magusfile or lists magusfile among its spells. Magus binds that driver to every project automatically, so declaring it does nothing.
MGS1018: dead output globA project declares an output glob that matches nothing while its other outputs match files. A target that inherits the glob fails its snapshot on a cold cache, long after the mistake was made.
MGS1019: committed output records its own commitFires when a committed generated file contains the repository's own HEAD commit, so regenerating after a commit always reports drift and the build can never be clean.
MGS1020: output owned by two targetsFires when two targets in the same project declare the same output glob, so whichever runs last wins and the other target's drift gate fails on the next run.
MGS1021: workspace requires a newer magusFires when magus.yaml declares a required_version floor the running binary does not satisfy. Upgrade the binary, or raise the pinned version in CI.
MGS1022: member only callable from a magusfileFires when a magus buzz script calls a magus namespace member that declares into, or reads from, the workspace magus is loading. The rest of the namespace works in a script.
MGS3002: VCS unavailableA vcs host-module call could not resolve a version control system, or the VCS command it ran failed, so the value it was asked for does not exist.
MGS3003: tool not on PATHos.which could not resolve a command against PATH, so the tool a target depends on is not installed or not visible to this run.
MGS3004: tool not readyA tool is installed but the service it talks to is unreachable, so a spell's readiness probe failed before the op was allowed to run.
MGS3005: tool too oldA tool reports a version older than the spell's ops work against, so magus refuses before the op forks rather than letting the tool fail on an unrecognized flag.
SpellsA spell is a library of tool-native ops (go-build, cargo-clippy, eslint) plus cache metadata that your magusfile composes into runnable targets.
TargetsA Target is the addressable unit of work in magus, keyed by project Path and operation Name, with charms layered on top for execution modifiers.
Workspace and projectsA workspace is the discovered root; a project is a directory whose magusfile registers it, and depends_on wires the two into an ordered, cache-aware graph.
archive moduleArchive creation and extraction with automatic format detection.
charm moduleConstructors for charm values: RFC 6902 JSON Patches over a target's argv (see docs/charms.md).
crypto moduleContent digests (SHA-256/512; SHA-1 and MD5 for legacy-checksum interop).
encoding moduleBase64/hex/URL text codecs.
env moduleProcess environment variable access.
fmt moduleString formatting (printf-style).
fs moduleFilesystem and path primitives.
http moduleHTTP client with automatic retry on transient errors.
json moduleJSON encode/decode.
magus initBootstrap a magus workspace with a magus.yaml config, magusfile stub, and VCS merge driver; supports global, local, and non-interactive modes.
magus moduleMagus core primitives.
magus stdlibReference for every magus stdlib module - fs, os, http, json, yaml, crypto, and the rest of the magusfile API surface.
magusfile diagnosticsLanding page for MGS1xxx diagnostics that flag authoring mistakes in a workspace's magusfile, such as missing targets or unresolved declarations.
markdown moduleGitHub-Flavored Markdown to semantic HTML.
os moduleProcess execution.
path modulePure path-string math: abs, rel, clean, is_abs, expand_user.
platform moduleNormalize OS/architecture identifiers across naming conventions (aarch64↔arm64, Darwin↔darwin).
semver moduleSemantic version parsing and comparison (SemVer 2.0.0).
strings moduleCase conversion and word helpers (camel/snake/kebab/Pascal, capitalize, words, ellipsis).
template moduleLogic-less Mustache templating (Mustache spec, via github.com/cbroglie/mustache).
time moduleTimestamp formatting/parsing and duration parsing (Go time, UTC).
toml moduleTOML parse and stringify (TOML 1.0 via pelletier/go-toml/v2).
uuid moduleUnique identifiers and random tokens (v4 random, v7 time-ordered, plus raw random hex/tokens).
vcs moduleVersion-control queries for the current working tree.
xml moduleBuild, serialize, and parse XML/SVG.
yaml moduleYAML parse and stringify (YAML 1.2 via gopkg.in/yaml.v3).