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 (the cursor target is deprecated).
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. The machine Worker closure does not become a project declaration. User-home target state may remain ambient and is reported separately.