Releases: goldjg/cARL
v0.4.0 - cARL is The Real Shim Shady
What’s Changed
cARL v0.4.0 introduces the adapter shim architecture.
.github/copilot-instructions.md is now the shared cARL adapter loader and GitHub Copilot entrypoint. Other supported harnesses use documented entrypoint shims that point back to the shared loader:
- Claude Code: CLAUDE.md
- Codex: AGENTS.md
- Cursor: .cursor/rules/carl.mdc
- Antigravity: .agents/rules/carl.md
Harness sync now writes the shared loader plus the relevant shim, deduplicates shared writes, and detects registry conflicts. Harness status now validates all managed files for an adapter, so shim harnesses are only healthy when both the shared loader and their documented entrypoint are present and synced.
This release also updates docs, memory, tests, and embedded adapter assets for the new shim model.
Full Changelog: v0.3.0...v0.4.0
v0.3.0 — cARL Asserts His Authori-tay
Summary
cARL now makes its authority model explicit: canonical governance lives in cARL artefacts, while harness-specific files act as disposable loaders/adapters.
Changes
- Refactors GitHub Copilot instructions into a thin procedural cARL loader.
- Clarifies that harness adapter files are disposable loaders, not independent authorities.
- Updates core governance packs for hydration, validation, reconciliation, and final cARL/docs reporting.
- Strengthens invariants, trust-boundary guidance, tool policy, dependency guidance, identity guidance, security guidance, and memory cache behaviour.
- Syncs embedded managed assets with the updated live governance artefacts.
Validation
go build ./cmd/carlcompleted successfully../carl harness statusshowed GitHub Copilot present and synced.go test ./...was attempted on Raspberry Pi arm64 with Go 1.19.8, but full validation requires Go 1.24+.
Notes
Non-Copilot adapters may report drift until regenerated or synced from the updated embedded canonicals.
v0.2.3 cARL discovers not all harnesses are equal
What's Changed
This release refines cARL's harness support model to better reflect real-world validation status.
Previous releases treated harness support as a simple binary state. Field testing revealed that an adapter existing is not the same as governance being proven to work end-to-end. Different AI coding harnesses expose repository instructions, context loading, skills, settings, and governance controls in different ways.
cARL now tracks harness maturity using three validation tiers:
- Production — Tested and validated end-to-end
- Experimental — Partially validated, under active investigation
- Theoretical — Adapter exists but has not yet been validated end-to-end
Current validation status:
| Harness | Status |
|---|---|
| GitHub Copilot | Production |
| Claude Code | Experimental |
| Codex | Theoretical |
| Cursor | Theoretical |
| Antigravity | Theoretical |
This change improves transparency, avoids overstating support, and provides a clearer roadmap for future harness validation work.
Changes
- harness: replace binary support flag with three-tier validation status by @goldjg with @Copilot in #16
Full Changelog: v0.2.2...v0.2.3
v0.2.2 cARL draws his family tree
v0.2.2 — cARL draws his family tree 🌳
Until now, cARL could understand the repository in front of him.
With this release, cARL can also preserve knowledge from the systems that came before him.
This release introduces carl convert aadlc, a migration command for bringing durable AADLC knowledge into canonical cARL artefacts without losing the context your repository already paid to learn.
What's New
carl convert aadlc
carl convert aadlc migrates durable governance knowledge from legacy AADLC repositories into cARL.
It can discover AADLC artefacts from:
.aadlc/
.github/aadlc/
aadlc/
AADLC.md
and classify migrated knowledge as:
- Invariants
- Durable memory
- Governance rules
Migrated content is routed into:
.github/carl/invariants.yml
.github/carl/memory.md
Safety Semantics
carl convert aadlc is deliberately conservative:
- Defaults to
--dry-run - Requires
--applyto write changes - Never modifies or deletes AADLC artefacts
- Never overwrites existing cARL knowledge
- Skips duplicates
- Reports conflicts for human review
- Fails safely on malformed generated-section markers
- Produces deterministic, idempotent output
In short: cARL can inherit the family papers without scribbling over them in crayon.
Why This Matters
AADLC was the ancestor.
cARL is the runtime.
convert is the bridge between them.
AADLC durable knowledge
↓
carl convert aadlc
↓
cARL canonical artefacts
↓
carl harness sync
↓
Agent-ready governance
This means adopting cARL does not create accidental amnesia.
Existing lessons, constraints, and repo-specific governance can come along for the ride.
What's Changed
Full Changelog: v0.2.1...v0.2.2
v0.2.1 cARL has receipts 🧾
v0.2.1 — cARL has receipts 🧾
Until now, cARL CLI could install a runtime, map a repository, repair canonical artefacts, and project governance into multiple agent harnesses.
What it couldn't do was update its understanding when repository reality changed (but agents using the cARL principles could and would).
This release introduces carl reconcile.
What's New
carl reconcile
carl reconcile updates repository-specific durable knowledge using the current repository map.
The command reads:
.github/carl/repo-map.json.github/carl/memory.md
and refreshes repository-specific memory while preserving human-authored content.
Reconcile updates:
- Languages
- Entry points
- Key directories
- Workflows
- Governance artefacts
- Documentation
- Repository snapshot metadata
while leaving:
runtime.json- Harness adapter files
- Canonical runtime artefacts
untouched.
Runtime Lifecycle Management
With the addition of reconcile, cARL CLI now supports a complete lifecycle for runtime knowledge:
carl init
↓
Install runtime
carl map
↓
Observe repository reality
carl reconcile
↓
Update durable memory
carl harness sync
↓
Project runtime into agent harnesses
carl doctor
carl status
↓
Operate and inspect
carl repair
↓
Restore canonical state
Safety Improvements
carl reconcile now validates generated-section markers before making any changes.
Malformed generated sections are detected and reported with actionable errors rather than risking duplicate or corrupted memory content.
Why This Matters
Repository maps are observations.
Durable artefacts are memory.
carl reconcile is the bridge between the two.
Repository Reality
↓
carl map
↓
repo-map.json
↓
carl reconcile
↓
memory.md
Or put another way:
cARL now has receipts.
What's Changed
- feat: add
carl reconcilecommand by @goldjg with @Copilot in #14 - harden reconcile against malformed generated-section markers by @goldjg with @Copilot in #14
Full Changelog: v0.2.0...v0.2.1
v0.2.0 cARL discovers other lifeforms
v0.2.0 — cARL discovers other lifeforms
For its first few releases, cARL was mostly concerned with itself: installing runtimes, detecting drift, and preventing coding agents from repeatedly throwing themselves down the same staircase.
In v0.2.0, cARL ventures beyond its native habitat and discovers that other lifeforms exist.
Specifically: Claude Code, Codex, Cursor, and Antigravity.
Having encountered them, cARL immediately begins inspecting their harnesses, checking for signs of drift, and suggesting corrective action. This behaviour is considered normal.
What's Changed
🛸 First Contact
- feat: add
carl harness— harness adapter support for AI coding agents by @goldjg with @Copilot in #10
👽 Known Species Catalogue
- feat: implement harness adapters for Claude Code, Codex, Cursor, and Antigravity by @goldjg with @Copilot in #11
🔧 Universal Translator / Repair Beam
🩺 Routine Medical Examinations
- Surface harness adapter health in
carl harness status,carl doctor, andcarl statusby @goldjg with @Copilot in #13
New Capabilities
cARL can now:
- Detect supported coding-agent harnesses
- Report whether adapters are present, missing, healthy, or drifted
- Compare installed harness artefacts against canonical embedded versions
- Repair drifted harness adapters via
carl harness sync - Surface harness health through runtime diagnostics and status reporting
In other words, cARL has evolved from:
"I manage my runtime."
to:
"I manage the increasingly alarming ecosystem of coding agents living in this repository."
Full Changelog
v0.1.5 cARL discovers paperwork
What's Changed
Full Changelog: v0.1.4...v0.1.5
v0.1.4 cARL gets a map 🗺️
What's Changed
Full Changelog: v0.1.3...v0.1.4
v0.1.3 cARL GOes to Hollywood
What's Changed
cARL now provides governance guidance for:
- Go
- Python
- PowerShell
- Terraform
- JavaScript
- TypeScript
- HTML
Notable additions:
• Goroutine safety
• Context propagation
• Error handling discipline
• Dependency governance
• Security guidance
• Testing conventions
The worm continues its journey.
Full Changelog: v0.1.2...v0.1.3