Local-first CLI / change plan 01

Know what went stale.
Before you rerun it all.

Turn a lineage manifest and explicit version changes into one reviewable Markdown or JSON card: affected assets, evidence paths, safe order, known cost, and unknown edges.

  • 0 production connections
  • 0 jobs executed
  • 100% declared evidence
A coral schema change slip connects across a blueprint to four layered data asset cards, two stamped stale and the last stamped verified.
Fig. 01 One declared change, traced through known lineage.
  1. 01DeclareVersion changes
  2. 02TraceKnown descendants
  3. 03ReviewCost + unknowns
  4. 04RecomputeIn safe order

Recorded analysis / deterministic fixture

Inspect the plan, not another DAG.

The example is a replay of the README fixture. Run it to place a fresh impact sheet on the drafting table; use the CLI for your own files.

dcic / local
$ dcic analyze \
  --manifest lineage.yaml \
  --changes changes.yaml \
  --output impact.md
Ready: 1 change declared.

Impact card / 2026-08-28

orders.v42

Ready
Changed
1 source
Stale
2 assets
Estimate
7 min
Unknown
0 edges
Upstream changeraw.orders v41 → v42

currency_code became required

Safe recompute order

  1. 01
    clean.ordersmodel · 2 min
  2. 02
    mart.revenuetable · 5 min
Lineage: completeGenerated locally

Open contract / schema v1

Small inputs. Explicit claims.

You declare what the tool may know. Every card repeats whether lineage is complete or partial, and every dangling dependency remains visible. No inference theater.

  • YAML or JSON in, Markdown or JSON out
  • Topological order with cycle rejection
  • Stable aliases for redacted exports
  • Known-minute total and missing estimates
RequiredOptional
schema_version: 1
completeness: complete
nodes:
  - id: raw.orders
    kind: source
  - id: clean.orders
    depends_on: [raw.orders]
    recompute: dbt run --select clean.orders
    estimate_minutes: 2

Honest failure modes

Uncertainty stays on the page.

Partial manifest

The order is marked “review required.” Missing lineage never becomes a green check.

Cycle detected

The CLI exits with code 2 and names the cycle. It will not invent a safe order.

No downstream impact

The card says “no impact” and still states input completeness, instead of producing an empty file.

MIT licensed / v0.1.0

Add one read-only step before the expensive one.

Build from source today. Release binaries are prepared for Linux, macOS, and Windows by the factory.

cargo install --git https://github.com/B-Divyesh/sf-data-change-impact-card