lineage-diff

A comparison of the column-level data flow in two versions of a SQL query or model. It reports which links between input and output columns were added, removed, or left unchanged.

In plain words
What is it for?
Use it to compare a committed and modified model, check whether a refactoring changed data flow, and identify new or broken column dependencies.
Why use it?
It makes changes in how data moves through a query easier to review than comparing the SQL text alone.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/altimateai/altimate-code/lineage-diff
Any agent
npx skills add AltimateAI/altimate-code --skill lineage-diff
Clone the repo
git clone --depth 1 https://github.com/AltimateAI/altimate-code

Made for: Claude Code, Codex.

Per session 28 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 496 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00028 $0.00496
Opus 5 $0.00014 $0.00248
Sonnet 5 $0.00006 $0.00099
Haiku 4.5 $0.00003 $0.00050

Measured 2d ago against content hash 7e6f283c6685, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

lineage-diff scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.opencode/skills/lineage-diff/SKILL.md · 65 lines

What it actually says

Lineage Diff

Requirements

Agent: any (read-only analysis) Tools used: lineage_check, read, bash (for git operations), glob

Compare column-level lineage between two versions of a SQL model to identify changes in data flow.

Workflow

  1. Get the original SQL — Either:

    • Read the file from disk (current committed version)
    • Use git show HEAD:path/to/file.sql via bash to get the last committed version
    • Accept the "before" SQL directly from the user
  2. Get the modified SQL — Either:

    • Read the current (modified) file from disk
    • Accept the "after" SQL directly from the user
  3. Run lineage on both versions:

    • Call lineage_check with the original SQL
    • Call lineage_check with the modified SQL
  4. Compute the diff:

    • Added edges: Edges in the new lineage that don't exist in the old
    • Removed edges: Edges in the old lineage that don't exist in the new
    • Unchanged edges: Edges present in both
  5. Report the diff in a clear format:

Lineage Diff: model_name
═══════════════════════════

+ ADDED (new data flow):
  + source_table.new_column → target_table.output_column

- REMOVED (broken data flow):
  - source_table.old_column → target_table.output_column

  UNCHANGED: 5 edges

Impact: 1 new edge, 1 removed edge

Usage

The user invokes this skill with a file path:

  • /lineage-diff models/marts/dim_customers.sql — Compare current file against last git commit
  • /lineage-diff — Compare staged changes in the current file

Edge Matching

Two edges are considered the same if all four fields match:

  • source_table + source_column + target_table + target_column

The transform field is informational and not used for matching.

Use the tools: lineage_check, read, bash (for git operations), glob.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 65 lines · 28 tokens per session scan A 7e6f283c6685

Subscribe to this mod's changes

lineage-diff is a skill published in the GitHub repository AltimateAI/altimate-code (803 stars, last pushed 2d ago), licensed MIT. It adds 28 tokens to every session and 496 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

review-prs

Review a GitHub pull request in the googleapis/mcp-toolbox repo against the team's reviewer checklist: PR title/description conventions, linked issue, logic errors and unhandled edge cases, breaking changes, test coverage, docs updates, security (input handling), and new dependencies. Use whenever a maintainer asks…

googleapis/mcp-toolbox · 162 tokens

fix-failing-tests

Diagnose a failing test in the googleapis/mcp-toolbox repo and land a fix by reasoning from the actual error: read the failure, reproduce it, shrink it until the cause is forced into the open, then fix the cause. Use this whenever a test or CI job is red, a build breaks after a change, many packages fail at once, or a…

googleapis/mcp-toolbox · 87 tokens

stale-sweep

Sweep the googleapis/mcp-toolbox repo for issues and PRs with no real activity in N days (default 60), sort each by whose silence it is (the author's, ours, or nobody's), and draft the nudge or close comment. Use whenever a maintainer asks for a stale sweep, backlog cleanup, or an SLO check, e.g. "stale sweep", "find…

googleapis/mcp-toolbox · 159 tokens

triage-issues

Triage GitHub issues in the googleapis/mcp-toolbox repo: propose the correct labels (type / priority / product / status), check for duplicates, verify a bug has enough info to act on, and draft a triage comment. Use whenever a maintainer asks you to triage, label, categorize, prioritize, or "look at" an issue (or a…

googleapis/mcp-toolbox · 164 tokens

data-divergence

Investigate why two datasets that should agree don't — two pipelines writing the same logical table, a rollup vs the detail it aggregates, a dashboard vs its source, one environment vs another. Use when row counts, totals, or date ranges disagree and the question is what happened rather than just what differs. Covers…

andre-salvati/databricks-template · 123 tokens

sql-diagram

Diagram a SQL query and explain what it shows — either its execution steps (mode=plan) or its column lineage (mode=lineage) — then trace it through small data so the defects the picture cannot show become visible. Use when asked to visualize, diagram, explain or review what a query does, how it joins its tables, or…

andre-salvati/databricks-template · 121 tokens