Skip to content

Releases: goldjg/cARL

v0.4.0 - cARL is The Real Shim Shady

22 Jun 21:16
9b2c3d2

Choose a tag to compare

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

21 Jun 19:19
2220842

Choose a tag to compare

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/carl completed successfully.
  • ./carl harness status showed 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

19 Jun 16:00
9c35e99

Choose a tag to compare

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

19 Jun 12:01
55541b7

Choose a tag to compare

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 --apply to 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

  • Implement carl convert aadlc by @goldjg with @Copilot in #15

Full Changelog: v0.2.1...v0.2.2

v0.2.1 cARL has receipts 🧾

19 Jun 05:29
f14c72c

Choose a tag to compare

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 reconcile command 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

18 Jun 21:33
fa0b81a

Choose a tag to compare

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

  • feat: add carl harness sync subcommand by @goldjg with @Copilot in #12

🩺 Routine Medical Examinations

  • Surface harness adapter health in carl harness status, carl doctor, and carl status by @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...v0.2.0

v0.1.5 cARL discovers paperwork

18 Jun 11:55
c3bf646

Choose a tag to compare

What's Changed

  • feat: add carl plan command by @goldjg with @Copilot in #9

Full Changelog: v0.1.4...v0.1.5

v0.1.4 cARL gets a map 🗺️

18 Jun 11:11
cde9ca7

Choose a tag to compare

What's Changed

  • feat: add carl map command by @goldjg with @Copilot in #8

Full Changelog: v0.1.3...v0.1.4

v0.1.3 cARL GOes to Hollywood

18 Jun 10:41
a116caa

Choose a tag to compare

What's Changed

  • feat: add Go language pack by @goldjg with @Copilot in #7

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

v0.1.2 cARL has has acquired health insurance

18 Jun 06:50
3628a8e

Choose a tag to compare

What's Changed

  • feat: add carl doctor command by @Copilot in #6

Full Changelog: v0.1.1...v0.1.2