maister.yaml lives at the registered repository root. Schema version 2 binds the project to its default branch, promotion mode, Flow packages, runners, and capabilities.

Minimal manifest

Flow binding

version is a tag pin. Installation records the resolved commit, and an active Run stays on that revision even if the upstream tag later changes.

Package binding

One packages[] entry attaches every Flow and capability bundle a package ships, pinned to one per-package tag of the form <name>/vX.Y.Z. path is the package directory inside a multi-package repository. MAIster writes this entry when a package is attached, upgraded, or rolled back in the UI, and installs and attaches the listed versions when a repository is registered. See Package sources and versions.

Promotion

Use local_merge when MAIster should land changes into a local target branch. Use pull_request with a configured remote when the host can push and authenticate to the provider.

Public branch names

Set project.public_branch_template to control the name used when publishing a Run branch. The default is feature/{task_key}-{slug}. {task_key} is required; {slug} and {attempt} are optional. Without a task, the key uses the Run id. The result must be a valid Git branch name. An existing upstream or recorded publication takes precedence. See Run Git operations.

Capabilities and secrets

Project capabilities may bind skills, MCP servers, tools, settings, agent definitions, and environment profiles to compatible agent families. Put only secret references such as env:PROVIDER_TOKEN in configuration. Secret values belong in the appropriate host process environment.

Validation behavior

Unknown schema versions, duplicate Flow identifiers, empty sources or versions, and unresolved runner references fail configuration validation. MAIster reports the error and does not guess a replacement.