google/datalineage-summary
>- Summarizes Google Cloud Data Lineage graphs to help users debug data quality issues and understand data provenance for BQ/GCS. Use when summarizing upstream and downstream data flows, and presenting complex lineage data as an intuitive Markdown report. Don't use for generic BigQuery queries, editing lineage relationships, or downstream deprecation. Don't use for downstream blast-radius impact analysis (use datalineage-bigquery-asset-impact-analysis skill instead).
npx skills add https://github.com/google/skills --skill datalineage-summary
This skill guides the agent in investigating and summarizing the Data Lineage
graph for a specific focal asset (Table-Level Lineage) or specific fields
(Column-Level Lineage). It provides an intuitive left-to-right walkthrough of
how data enters and leaves the asset, abstracting away complex node and link
details into plain English.
This skill relies on the **Google Cloud Data Lineage (Knowledge Catalog) MCP
Server** for graph traversal. Ensure you can run search_lineage queries in
both upstream and downstream directions. For detailed connection configurations
and tool schemas, refer to MCP Usage.
Fetch the lineage graph in both directions from the focal point (both upstream
and downstream) by making *two separate calls* to the MCP tool: one with
"direction": "UPSTREAM" and another with "direction": "DOWNSTREAM".
read_url tool to fetch thecomprehensive list of locations dynamically from the provided
link. To ensure cross-regional lineage is not missed, always verify the
current list of GCP regions using this link before populating the
locations array. You MUST populate the locations array with all
supported physical regions fetched from this link. You may optionally
additionally determine the asset's specific active region (using bq show
or gcloud storage ls).
maxDepth = 10, maxResults = 5000 andmaxProcessPerLink = 10 as robust defaults when calling search_lineage.
For example, a DOWNSTREAM call should be formatted like this (expanding the
locations array as needed):
{
"parent": "projects/project_id/locations/us",
"locations": [
"us",
"us-central1",
"us-east1",
"us-west1",
"europe-west1",
"asia-northeast1"
],
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:project.dataset.table"
}
]
}
},
"direction": "DOWNSTREAM",
"limits": {
"maxDepth": 10,
"maxResults": 5000,
"maxProcessPerLink": 10
}
}
Ensure you make a similar call with "direction": "UPSTREAM" to fetch the
upstream lineage.
search_lineage tool can find allColumn-Level Lineage (CLL) by configuring the field array. If Table-Level
Lineage (TLL) is requested, configure the call to get CLL links along with
the TLL links by exploiting the "*" wildcard. For example:
"rootCriteria": {
"entities": {
"entities": [
{
"fullyQualifiedName": "bigquery:project.dataset.table",
"field": [
"*"
]
}
]
}
}
If evaluating a specific column, replace "*" with the specific column name
(e.g., "efficiency_score").
Generate the summary using the prompt guidelines below.
easy-to-understand left-to-right walkthrough of the data flow.
follows:
(e.g., "This appears to be a Feature Engineering workflow...").
request is for Column-Level Lineage, you MUST explicitly declare that
the scope of the analysis is limited to the specified field up front.
Upstream Lineage:.Narrative must detail how data arrives at the focal asset, mentioning
key source systems, projects, and processing tasks (e.g., Spark on
Dataproc).
Lineage:**`. Detail where data goes from the focal asset to final
consumer systems.
provide transparency on the boundaries of the summary. The output must
contain:
{list_of_locations_queried}{parent_path}{maxDepth}{maxProcessPerLink}expanded locations (if not all were used) or depth.
files/tables.
intermediate views, consumer tables) if there are fewer than 5. Do not
just summarize counts if there are fewer than 5; name them explicitly.
Otherwise, if 5 or more, aggregate them by count (e.g., "5 GCS
buckets").
*total assets*.
project is involved.
points." Be direct and clear. The final output is Markdown.
Return the final summarized output back to the user.
Take google/datalineage-summary from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.