Declare your agent harness once. Compile to any tool. Detect drift. Enforce policy.
Every developer configures AI coding tools differently. Nobody knows which setup is authoritative. xcaffold fixes this.
kind: agent
version: "1.0"
name: database-engineer
description: >-
Drizzle schema design, migration generation,
RLS policy management, seed data, and
database performance.
model: sonnet
tools:
- Read
- Edit
- Write
- Bash
- Glob
- Grep
skills:
- tdd-driven-development
hooks:
PreToolUse:
- matcher: Write
command: .claude/hooks/enforce-standards.sh---
name: database-engineer
description: >-
Drizzle schema design, migration generation,
RLS policy management, seed data, and
database performance.
model: sonnet
tools: [Read, Edit, Write, Bash, Glob, Grep]
skills: [tdd-driven-development]
hooks:
PreToolUse:
- matcher: Write
command: .claude/hooks/enforce-standards.sh
---Write once. Compile to all of them.
Every team using agentic coding tools has the same problem: agents configured by hand, drifting silently between developers.
You can't tell which configs are in production. A manual edit in one repo breaks behavior in another. Nobody notices until the API bill arrives.
One source of truth, every platform
project.xcaf and xcaf/ manifests compile to all 5 providers. No lock-in.
Nothing drifts without you knowing
SHA-256 project.xcaf.state + xcaffold status.
Stop tracking provider configs
Gitignore .claude and .cursor. Commit your .xcaffold/ and xcaf/ folders, and let xcaffold render native configs locally.
Already have configs?
Use xcaffold import to reverse-engineer your existing provider folder into a portable .xcaf blueprint in seconds.
Centralize harness engineering
Define your agents, skills, and rules once in .xcaf manifests. Let xcaffold compile provider-native configs on demand — your git history stays clean.