Verifiable data. Deterministic answers. Tamper-evident proof.
Data will commoditize. Models will commoditize. What remains scarce is knowing where every number came from — and being able to prove it. CMD+RVL builds open-source tools that verify, explain, and lock data artifacts so every conclusion traces back to source.
Same bytes in, same answer out, every time. When a confident answer isn't possible, the tool refuses and tells you exactly what to fix.
Composable Rust CLIs. Each tool does one thing and emits structured JSON. Agents decide what to run — these tools decide what is true.
| Tool | What it does | Install |
|---|---|---|
| vacuum | Enumerates artifacts in scope, emits a deterministic sorted JSONL manifest with size, mtime, and MIME type | brew install cmdrvl/tap/vacuum |
| hash | Streaming content hashing — adds SHA-256 or BLAKE3 byte identity to every artifact in a manifest | brew install cmdrvl/tap/hash |
| fingerprint | Template recognition — tests artifacts against versioned assertion-based definitions and produces content hashes | brew install cmdrvl/tap/fingerprint |
| profile | Column-scoping configs for report tools — draft/freeze lifecycle, deterministic key suggestion, schema linting | brew install cmdrvl/tap/profile |
| lock | Dataset lockfiles — like Cargo.lock for data. Self-hashed, tamper-evident, with lock verify for integrity checks |
brew install cmdrvl/tap/lock |
| shape | Structural comparability gate — can these two datasets be compared at all? | brew install cmdrvl/tap/shape |
| rvl | Reveals the smallest set of numeric changes that explain what actually changed between two datasets | brew install cmdrvl/tap/rvl |
| canon | Deterministic entity resolution — resolves identifiers against versioned registries with full audit trail | brew install cmdrvl/tap/canon |
| pack | Evidence sealing — bundles lockfiles, reports, and tool outputs into one immutable, content-addressed evidence pack | brew install cmdrvl/tap/pack |
All nine tools record to a shared append-only witness ledger (~/.epistemic/witness.jsonl) — every invocation is content-addressed, hash-chained, and auditable.
Typical pipeline: vacuum (what's there?) → hash (prove identity) → fingerprint (recognize templates) → lock (pin inputs) → shape (are these comparable?) → rvl (what changed?) → pack (seal the evidence)
| Tool | What it does |
|---|---|
| verify | Invariant checks against declared rules (PASS / FAIL) |
| compare | Exhaustive cell-by-cell diff without materiality compression |
| assess | Decision framing — PROCEED / ESCALATE / BLOCK against declared policy |
| Tool | What it does |
|---|---|
| cmdrvl-xew | Detects enforcement-fragile XBRL patterns in SEC filings, produces reproducible Evidence Packs |
| edgar-change-interpreter | Claude skill for identifying material changes and silent risks in SEC filings |
| edgar-fabric-ingest | Reference implementation for ingesting EDGAR disclosures into an append-only event store |
| Tool | What it does |
|---|---|
| regret | Mines git history for high-precision regret signals — reverts, linked fixes, patch-id matches |
| twinning | In-memory database twin that speaks the real wire protocol — fast testing without a real database |
These tools are built for agent orchestration. Two reference prompts help agents learn the full toolchain:
- Agent Operator Guide — workflows, refusal recovery, schema discovery, and the full tool map
- System Prompt — compact drop-in for agent context windows (~30 lines)
Every shipped tool also supports <tool> --describe for per-tool machine-readable self-discovery.
brew install cmdrvl/tap/vacuum
brew install cmdrvl/tap/hash
brew install cmdrvl/tap/fingerprint
brew install cmdrvl/tap/profile
brew install cmdrvl/tap/lock
brew install cmdrvl/tap/shape
brew install cmdrvl/tap/rvl
brew install cmdrvl/tap/canon
brew install cmdrvl/tap/pack