Type object
Schema URL https://catalog.lintel.tools/schemas/schemastore/acp-configuration-file/_shared/latest--sync.schema.json
Parent schema acp-configuration-file
Type: object

Configuration for ACP tool synchronization (.acp/acp.sync.json or sync section in config)

Properties

version string required

Sync configuration version

Examples: "1.0.0"
pattern=^\d+\.\d+\.\d+
$schema string

JSON Schema URL for validation

enabled boolean

Enable or disable sync functionality

Default: true
auto boolean

Automatically sync when index or watch updates cache

Default: true
tools toolName[]

Explicit list of tools to sync to. Empty array means auto-detect. Warning: same tool in both 'tools' and 'exclude' causes undefined behavior

uniqueItems=true
exclude toolName[]

Tools to never sync to, even if detected. Warning: same tool in both 'tools' and 'exclude' causes undefined behavior

uniqueItems=true
primer object

Global primer generation configuration

6 nested properties
defaultBudget integer

Default token budget when not specified per-tool

Default: 500
min=80max=100000
defaultFormat string

Default output format

Default: "markdown"
Values: "markdown" "compact" "json" "text"
weights object

Weights for multi-dimensional value calculation

4 nested properties
safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
preset string

Use a named weight preset as default

Values: "safe" "efficient" "accurate" "balanced"
dynamicModifiers boolean

Enable dynamic value modifiers globally

Default: true
primerFile string

Path to custom primer definition file

custom Record<string, object>

Per-tool custom configuration

contentOptions object

Legacy content options (prefer using primer config instead)

11 nested properties
includeHacks boolean

Include active hack markers in output

Default: true
includeDebugSessions boolean

Include active debug sessions in output

Default: false
maxProtectedFiles integer

Maximum number of protected files to list

Default: 50
min=0max=1000
maxVariables integer

Maximum number of variables to include

Default: 20
min=0max=500
includeQueryExamples boolean

Include jq query examples

Default: true
includeDomainSummary boolean

Include domain architecture summary

Default: true
includeLayerSummary boolean

Include layer architecture summary

Default: true
includeStyleGuides boolean

Include referenced style guide links

Default: true
protectedFilesSortBy string

How to sort the protected files list

Default: "lock-level"
Values: "path" "lock-level" "domain"
variablesSortBy string

How to sort the variables list

Default: "usage"
Values: "name" "usage" "type"
customSections customSection[]

Additional custom sections to include

customAdapters customAdapter[]

User-defined tool adapters

templates Record<string, string>

Override default templates for tools or components

hooks object
4 nested properties
pre string

Script to run before sync

post string

Script to run after sync

onError string

Script to run on sync error

perTool Record<string, object>

Per-tool hooks

debounceMs integer

Debounce interval for auto-sync in watch mode (milliseconds)

Default: 2000
min=0max=60000

Definitions

toolName string | string

Built-in or custom tool identifier

globalPrimerConfig object

Global primer generation configuration

defaultBudget integer

Default token budget when not specified per-tool

Default: 500
min=80max=100000
defaultFormat string

Default output format

Default: "markdown"
Values: "markdown" "compact" "json" "text"
weights object

Weights for multi-dimensional value calculation

4 nested properties
safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
preset string

Use a named weight preset as default

Values: "safe" "efficient" "accurate" "balanced"
dynamicModifiers boolean

Enable dynamic value modifiers globally

Default: true
primerFile string

Path to custom primer definition file

toolPrimerConfig object

Per-tool primer generation configuration

budget integer

Token budget for primer content

min=80max=100000
format string

Output format for primer

Values: "markdown" "compact" "json" "text"
weights object

Weights for multi-dimensional value calculation

4 nested properties
safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
preset string

Use a named weight preset

Values: "safe" "efficient" "accurate" "balanced"
capabilities string[]

Capabilities this tool has (auto-detected if not specified)

includeSections string[]

Only include these section IDs

excludeSections string[]

Exclude these section IDs

includeCategories string[]

Only include these categories

excludeCategories string[]

Exclude these categories

includeTags string[]

Only include sections with these tags

dynamicModifiers boolean

Enable dynamic value modifiers

Default: true
dimensionWeights object

Weights for multi-dimensional value calculation

safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
toolCustomConfig object
outputPath string

Override default output path

minLength=1
appendTo string

Append to existing file instead of creating new

sectionMarker string

Custom section marker for merge operations

format string

Override output format

Values: "markdown" "json" "yaml" "text" "compact"
template string

Path to custom template

disabled boolean

Disable this specific tool

primer object

Per-tool primer generation configuration

11 nested properties
budget integer

Token budget for primer content

min=80max=100000
format string

Output format for primer

Values: "markdown" "compact" "json" "text"
weights object

Weights for multi-dimensional value calculation

4 nested properties
safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
preset string

Use a named weight preset

Values: "safe" "efficient" "accurate" "balanced"
capabilities string[]

Capabilities this tool has (auto-detected if not specified)

includeSections string[]

Only include these section IDs

excludeSections string[]

Exclude these section IDs

includeCategories string[]

Only include these categories

excludeCategories string[]

Exclude these categories

includeTags string[]

Only include sections with these tags

dynamicModifiers boolean

Enable dynamic value modifiers

Default: true
contentOptions object

Legacy content options (prefer using primer config instead)

includeHacks boolean

Include active hack markers in output

Default: true
includeDebugSessions boolean

Include active debug sessions in output

Default: false
maxProtectedFiles integer

Maximum number of protected files to list

Default: 50
min=0max=1000
maxVariables integer

Maximum number of variables to include

Default: 20
min=0max=500
includeQueryExamples boolean

Include jq query examples

Default: true
includeDomainSummary boolean

Include domain architecture summary

Default: true
includeLayerSummary boolean

Include layer architecture summary

Default: true
includeStyleGuides boolean

Include referenced style guide links

Default: true
protectedFilesSortBy string

How to sort the protected files list

Default: "lock-level"
Values: "path" "lock-level" "domain"
variablesSortBy string

How to sort the variables list

Default: "usage"
Values: "name" "usage" "type"
customSections customSection[]

Additional custom sections to include

customSection object
title string required

Section heading

minLength=1
content string required

Static content or path to file

position string

Where to insert the section

Default: "end"
Values: "start" "end" "after-constraints" "after-domains"
customAdapter object
name string required

Unique adapter identifier

minLength=1pattern=^[a-z][a-z0-9-]*$
outputPath string required

Output file path relative to project root

minLength=1
format string required

Output format

Values: "markdown" "json" "yaml" "text" "compact"
displayName string

Human-readable name

template string

Path to Handlebars template file

detect object

Detection methods (at least one required)

Any of: variant, variant, variant
3 nested properties
files string[]

Files that indicate this tool is in use

minItems=1
commands string[]

CLI commands to check for

minItems=1
env string[]

Environment variables to check

minItems=1
mergeStrategy string

How to handle existing files

Default: "section"
Values: "replace" "section" "append" "merge"
sectionMarker string

Marker for section-based merging (required when mergeStrategy is 'section')

primer object

Per-tool primer generation configuration

11 nested properties
budget integer

Token budget for primer content

min=80max=100000
format string

Output format for primer

Values: "markdown" "compact" "json" "text"
weights object

Weights for multi-dimensional value calculation

4 nested properties
safety number

Weight for safety dimension

Default: 1.5
min=0
efficiency number

Weight for efficiency dimension

Default: 1.0
min=0
accuracy number

Weight for accuracy dimension

Default: 1.0
min=0
base number

Weight for base value

Default: 1.0
min=0
preset string

Use a named weight preset

Values: "safe" "efficient" "accurate" "balanced"
capabilities string[]

Capabilities this tool has (auto-detected if not specified)

includeSections string[]

Only include these section IDs

excludeSections string[]

Exclude these section IDs

includeCategories string[]

Only include these categories

excludeCategories string[]

Exclude these categories

includeTags string[]

Only include sections with these tags

dynamicModifiers boolean

Enable dynamic value modifiers

Default: true
hooks object
pre string

Script to run before sync

post string

Script to run after sync

onError string

Script to run on sync error

perTool Record<string, object>

Per-tool hooks

Examples

{
  "$schema": "https://acp-protocol.dev/schemas/v1/sync.schema.json",
  "version": "1.0.0",
  "enabled": true,
  "auto": true,
  "tools": [
    "cursor",
    "claude-code",
    "generic"
  ],
  "primer": {
    "defaultBudget": 500,
    "preset": "safe"
  },
  "custom": {
    "cursor": {
      "primer": {
        "budget": 2000,
        "capabilities": [
          "shell",
          "file-read",
          "file-write"
        ]
      }
    },
    "claude-code": {
      "primer": {
        "budget": 4000,
        "capabilities": [
          "shell",
          "mcp",
          "file-read",
          "file-write"
        ],
        "weights": {
          "safety": 1.5,
          "efficiency": 1.2,
          "accuracy": 1.0,
          "base": 1.0
        }
      }
    }
  }
}
{
  "$schema": "https://acp-protocol.dev/schemas/v1/sync.schema.json",
  "version": "1.0.0",
  "enabled": true,
  "exclude": [
    "aider"
  ],
  "primer": {
    "weights": {
      "safety": 2.0,
      "efficiency": 0.8,
      "accuracy": 1.0,
      "base": 0.8
    }
  },
  "customAdapters": [
    {
      "name": "my-ide",
      "displayName": "My Custom IDE",
      "outputPath": ".my-ide/context.md",
      "format": "markdown",
      "detect": {
        "files": [
          ".my-ide/config.json"
        ]
      },
      "mergeStrategy": "replace",
      "primer": {
        "budget": 2000,
        "capabilities": [
          "shell",
          "file-read"
        ]
      }
    }
  ]
}