The installer downloads one archive for your machine, verifies its digest against the release metadata before unpacking anything, and installs atomically; no git, no Rust, no Node, no root.
- status
- stable
majordomus init creates the layer from the tool's skeleton and refuses to overwrite an
existing one; --extend adds what is missing and overwrites nothing. A repository set up
before the layer existed is moved by migrate, previewed with --dry-run, with a verified
backup. The tool itself needs a POSIX shell, git and a checksum program, and it never
reaches the network while it works.
It does not install anything into your project beyond .ai/ and the files the policy
names, and it does not install git hooks: doctor names the two lines you still need to
add. A Windows archive is not published while the shell half has no Windows answer, and the
distribution model says so rather than shipping an executable nothing can drive.
The capabilities behind it
The capability modules of the executable this feature names, each with the capabilities it composes. The command line, the HTTP route, the MCP tool and the reference beside every row are projections of one declaration, not four registrations.
Distribution
distribution
behaviorally verified
How this project is packaged, published and installed: the platforms a release builds, the artifact names the one naming function derives, the installer's canonical command, the releases that were published, and what this build itself is. Every answer comes from share/distribution.yaml and the release records; no surface here states a fact of its own.
apps/majordomus-cli/src/capability/builtin/distribution.rs
The commands that run it
-
majordomus init
setup
Create the .ai/ layer in this repository, and refuse to overwrite an existing one.
-
majordomus migrate
setup
Move pre-.ai project data from .majordomus/ into .ai/, explicitly and backed up.
-
majordomus version
inspect · read-only
Print the version, without needing a repository or an installation.
The objects it is made of
Kinds of the layer. Each is a schema, a source class and a file on disk; the number beside it is what this repository holds today, counted at build time.
What it answers
Operational moments from the Why catalogue that name one of this feature's mechanisms. Nothing here was assigned: a moment appears because it names a rule, a command, a capability or a claim this feature also names.
The rules that hold it
-
blockingDistribution has one canonical model
project.distribution-canonical
-
blockingPortable shell
project.portable-shell
-
blockingNo network, no telemetry, no eval, no silent overwrite, no recursive deletion
project.no-network-no-eval
What is guaranteed
-
guaranteed
Every platform, artifact name and installation URL is derived from one model, and a projection that disagrees with it is refused
-
guaranteed
The documented one-line install command is composed from the model's parts, and a document that states a different one fails the suite
-
guaranteed
The installer verifies an artifact's digest and inspects its archive before anything is unpacked, and any failure leaves the previous installation working
-
guaranteed
A release publishes an artifact for every supported target or it is not published
-
guaranteed
A repository on the pre-.ai layout is migrated once, explicitly, with a previewed plan and a verified backup of its local state, and the command is idempotent afterwards
-
guaranteed
The tool runs read-only from any location, and two locations of one version agree about one repository
-
guaranteed
Nothing performs a network call, evaluates generated text, or deletes recursively
-
guaranteed
The Rust executable the rust gate built is published as an artifact with its provenance, and every Rust case drives the executable MAJORDOMUS_BIN names instead of building one
Executable use cases