contractor/config.yaml

Project-level configuration accepted by ProjectConfigSchema.

contractor/config.yaml is the project-level configuration file, validated against ProjectConfigSchema in packages/cli/src/lib/project-config.ts. Every field is optional — a missing file behaves the same as an empty one, and unknown keys are stripped.

Schema

schema is also accepted at the project level for convenience, but it is overridden by every blueprint's .contractor.yaml schema: field — see .contractor.yaml.

Fields

schema

The default schema name for blueprints created in this repo (contractor blueprint new falls back to this when --schema is omitted). Blueprints record their schema in .contractor.yaml at creation, so changing this later only affects new blueprints.

context

Free-form prose inlined into the agent's system prompt during artifact creation (proposal, requirements, design, tasks). Use it to teach the agent about repo-wide conventions that should not be re-derived every run.

rules

A map from artifact id to a list of bullet-point rules. The artifact ids match the schema's artifacts[].id. Rules are appended to the agent's prompt for that artifact, after context.

scopes

A whitelist of scope names accepted by contractor blueprint new --scope and contractor run --scope. When set, an unknown scope is rejected with an error listing the declared scopes.

Scopes have two visible effects at run time:

  • The {{scope}} placeholder in any pipeline kind: shell step is substituted with the current scope.
  • A step with when: scope is skipped when the active blueprint has no scope.

See the using scopes guide for an end-to-end walk-through.

pipeline

The default pipeline name to run for blueprints in this repo, used by contractor run when neither --pipeline nor the blueprint's .contractor.yaml pipeline: field is set.

pipelines

A map of named pipeline definitions. The same shape is accepted at ~/.contractor/config.yaml.pipelines for user-level pipelines available across every repo on the machine; project pipelines win on name collisions.

Each pipeline has a description and an ordered steps list. Steps are one of three kinds — agent, shell, or gate. See Pipelines for the full step reference.

Select a custom pipeline at run time with contractor run --pipeline <name>, or pin one to a blueprint with pipeline: in its .contractor.yaml.

A complete example