Skip to content

Consumer Sync Guide

This guide covers syncing BaseCoat assets into a consumer repository and keeping them up to date.

What gets synced

The sync script copies all distributable assets to .github/base-coat/ in your repo:

  • agents/ — all agent definition files
  • skills/ — all skill directories
  • instructions/ — all instruction files
  • prompts/ — prompt templates
  • version.json — version metadata

Files that are not synced: test scripts, CI workflows, internal tooling, docs/.

Sync commands

# Sync latest release (from main)
$env:BASECOAT_REPO = 'https://github.com/IBuySpy-Shared/basecoat.git'
.\sync.ps1

# Sync a specific version tag
$env:BASECOAT_REPO = 'https://github.com/IBuySpy-Shared/basecoat.git'
$env:BASECOAT_REF  = 'v3.25.0'
.\sync.ps1

# Sync to a custom target directory
$env:BASECOAT_REPO       = 'https://github.com/IBuySpy-Shared/basecoat.git'
$env:BASECOAT_TARGET_DIR = '.github/my-basecoat'
.\sync.ps1
# Sync latest release (from main)
BASECOAT_REPO=https://github.com/IBuySpy-Shared/basecoat.git ./sync.sh

# Sync a specific version tag
BASECOAT_REPO=https://github.com/IBuySpy-Shared/basecoat.git \
BASECOAT_REF=v3.25.0 ./sync.sh

# Sync to a custom target directory
BASECOAT_REPO=https://github.com/IBuySpy-Shared/basecoat.git \
BASECOAT_TARGET_DIR=.github/my-basecoat ./sync.sh

Checking your version

cat .github/base-coat/version.json

Automating upgrades

Add the callable drift-detection workflow to get automatic issue notifications when a new BaseCoat version is available. See Getting Started.

Naming convention

BaseCoat uses two names intentionally:

Name Used for
basecoat GitHub repo, internal scripts, environment variables (BASECOAT_*)
base-coat Distributed artifact, sync target (.github/base-coat/), version.json, release archives

See ADR-001 for full details.

See also