ADR-011: No zetl-Managed Snapshots

Status: Accepted

Context

Diff Command needs a baseline to diff against. Should zetl maintain its own snapshot history, or delegate to Git?

Decision

zetl uses Git as the sole history backend. It does not maintain snapshot storage.

Rationale

  • Most vaults are already in Git repositories
  • Snapshot management adds significant storage and complexity
  • Git provides rich baseline selection: refs, tags, dates, HEAD~N
  • The Merkle Tree provides content-addressed change detection within a single point in time; Git provides the temporal axis

Trade-offs

  • zetl diff requires Git — it’s the only zetl command with this dependency
  • Vaults not in Git cannot use diff
  • Git must be installed and accessible on PATH

Mitigation

When Git is unavailable, zetl diff produces a clear error message explaining the requirement. All other commands continue to work. See SPEC-007 Graph Diff for the full specification.

See also: Diff Command, ADR-012 Changed Files Reconstruction, decisions/Local-first Design

Backlinks