Skip to content

Manifest Schema — V1

The .claude/project.yml file tells the control plane how to run a project. Source file: spec/v1/manifest.schema.json.

Download raw schema: manifest.schema.json (generated from packages/schema/ via pnpm spec:generate).

ProjectManifest

Field Type Required Default
name string yes
type string yes
spec_version string no 1.x
linear_team string yes
discord_channel string yes
git object yes
agents object yes
skills array yes
template object no
deploy object no
ci object no
budgets object no {"iteration_cap":3}
cheap_mode object no {"enabled":false}
watchdog object no {"silence_threshold_ms":300000}

Field details

name

Lowercase slug for the project. Pattern: ^[a-z][a-z0-9-]*$. Must match the project's slug in the control plane DB.

type

Project template type. One of: mobile-web, salesforce-demo, web-only, custom.

agents

Per-task agent config. dev_task is required; all others are optional and fall back to the control plane's default routing.

budgets

Cost guardrails. iteration_cap limits how many times the executor retries a task before marking it failed (default: 3). daily_minutes / monthly_minutes are wall-clock caps.

cheap_mode

When enabled: true, the control plane substitutes a cheaper model for all tasks. Used to conserve quota when not actively developing.

watchdog

The watchdog monitors executor silence. If no event is emitted for silence_threshold_ms milliseconds (default: 300 000 = 5 min), the run is killed and marked failed.

Example

name: sample-app
type: web-only
spec_version: "1.x"
linear_team: SAM
discord_channel: "1234567890"
git:
  remote: "https://github.com/tmart2322/sample-app.git"
  default_branch: main
agents:
  dev_task:
    provider: claude-code
    model: claude-sonnet-4-5
skills:
  - core:dev-task
  - core:write-feature
budgets:
  iteration_cap: 3
  daily_minutes: 60