>- 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.
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Curated collection of high-quality prompts for various use cases. Includes role-based prompts, task-specific templates, and prompt refinement techniques. Use when user needs prompt templates, role-play prompts, or ready-to-use prompt examples for coding, writing, analysis, or creative tasks.
Convert abstract edge concepts into strategy draft variants and optional exportable ticket YAMLs for edge-candidate-agent export/validation.
INVOKE THIS SKILL when writing ANY LangGraph code. Covers StateGraph, state schemas, nodes, edges, Command, Send, invoke, streaming, and error handling.
Analyze the protocol layer between agent harness and LLM model. Use when (1) understanding message wire formats and API contracts, (2) examining tool call encoding/decoding mechanisms, (3) evaluating streaming protocols and partial response handling, (4) identifying agentic chat primitives (system prompts, scratchpads, interrupts), (5) comparing multi-provider abstraction strategies, or (6) understanding how frameworks translate between native LLM APIs and internal representations.
Translate SKILL.md and README.md files into multiple languages for sharing skills internationally
| Shared workflow for editing Langfuse's repo-owned agent setup under `.agents/`. Use when changing AGENTS files, shared skills, `.agents/config.json`, generated shim behavior, provider discovery paths, or install-time agent sync.
Audit experiment integrity before claiming results. Uses fresh-agent GPT-5.6-Sol review (same-family provisional in the base Codex mirror) to check for fake ground truth, score normalization fraud, phantom results, and insufficient scope. Use when user says \"审计实验\", \"check experiment integrity\", \"audit results\", \"实验诚实度\", or after experiments complete before writing claims.
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.