Skip to content

One command to install, one to initialise, nothing else to trust

One distribution model owns every platform, artifact name and URL; the installer, the release build matrix, the installation guide, the website's install block and the public release metadata are generated from it, and a release publishes an artifact for every supported target or it is not published.

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

What it does

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.

What it does not do

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.

  • distribution-model1

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 modelproject.distribution-canonical
  • blockingPortable shellproject.portable-shell
  • blockingNo network, no telemetry, no eval, no silent overwrite, no recursive deletionproject.no-network-no-eval

What is guaranteed

Executable use cases