Skip to main content

Project Config JSON

Path: <project>/.agents/drwn/config.json.

The first supported schema is:

{
"schema": "drwn.project-config",
"schemaVersion": 1,
"workers": ["@team/operator@^1.0.0"],
"activeWorker": "@team/operator"
}

Required Fields

FieldTypeMeaning
schema"drwn.project-config"Record identity.
schemaVersion1Local schema version.
workersstring[]Ordered root requirement refs.
activeWorkerstring | nullOne installed canonical root name or explicit no selection.

Roots are plain Cards or Blueprints. Blueprint members are recorded in card.lock, not repeated as roots.

Optional Fields

FieldMeaning
materializationvendored or linked.
committedSurfacesWhether managed project surfaces are expected to be committed.
mcpServersProject MCP toggles or complete definitions.
skills.include / skills.excludeExplicit project skill overlays.
hooksExclusions, runtime selection, and session signals.
extensionsSemantic extension choices such as Parallel, Beads, and MarkItDown.
targetsPer-project Claude/Codex/Cursor enablement.
trustedSourcesProject source trust policy.

Unknown fields, wrong schema identity/version, missing required selection, and malformed overlays fail with PROJECT_CONFIG_INVALID before mutation.

Mutation

Use:

drwn add <root-ref>
drwn apply <root-ref>... --active <root-name>
drwn remove <root-name>
drwn pin <root-ref>
drwn update [root-name]
drwn use <root-name-or-ref>
drwn use --none

Root mutations commit config and lock together. Write modes project state but never mutate this file.

Local Overlay

Ignored development state belongs in .agents/drwn/config.local.json:

{
"schema": "drwn.project-local",
"schemaVersion": 1,
"activeWorker": "@team/operator",
"cardReplacements": {},
"localOnlyRoots": [],
"sourceOverrides": {}
}

Status attributes local and committed sources separately.

Capability Scope

Project capabilities come from the selected root closure plus explicit project overlays. Machine profile and explicit machine inventory selections do not become project declarations. User-home target state may remain ambient and is reported separately.