Resource Attribution Enforcement
To track resources created or manipulated by AI agents, you MUST ensure that standard CLI commands are tagged with appropriate attribution labels under relevant conditions.
Applicability
You should apply these attribution labels ONLY under the following conditions:
- DAK Tooling: You are executing Python scripts, running MCP tools, or following workflows provided by the Data Agent Kit.
- Domain Relevance: You are operating on BigQuery datasets, GCS buckets, or Analytics infrastructure (including Spark, Dataproc, or Serverless Spark) intended for data preparation, deduplication, or analysis.
🚫 When to Omit
Do NOT apply these labels if you are running generic administrative commands or working on infrastructure completely unrelated to Data Cloud / Analytics (e.g., managing Compute Engines for web apps, setting up standard IAM policies, etc.).
Do NOT apply --label flags to commands that do not accept labels, as the --label flag is unsupported by these specific bq subcommands. These include:
bq showbq lsbq versionbq rmbq cancelbq head
BigQuery CLI (bq)
You MUST apply --label key:value ONLY to subcommands that accept job or resource labels (bq query, bq load, bq extract, bq mk, bq update, and bq cp).
- Flag Form:
--label key:value - Mandatory Label:
datacloud:<ide> - Deduction Rule: Substitute
<ide>with your actual environment/client (e.g.,vscode,jetski,antigravity,codex,cursor,cloud-shell,workstation,gemini-cli,claude).- Use
cloud-shellfor GCP Cloud Shell. - Use
workstationfor GCP Cloud Workstations. If you cannot determine your environment, useai-agent. Note that BigQuery labels cannot contain dots or spaces.
- Use
Examples
Query Example
Incorrect:
bq query --use_legacy_sql=false "SELECT 1"
Correct (assuming you are running in VS Code):
bq query --use_legacy_sql=false --label datacloud:vscode "SELECT 1"
Copy Example
Incorrect:
bq cp dataset1.table1 dataset2.table1_copy
Correct (assuming you are running in Jetski):
bq cp --label datacloud:jetski dataset1.table1 dataset2.table1_copy
Google Cloud SDK (gcloud)
Whenever you execute any gcloud command via run_command, you MUST
prepend the command with the CLOUDSDK_METRICS_ENVIRONMENT environment
variable to ensure proper resource attribution.
Environment Variable: prepend commands using the append form. It keeps any attribution another tool or skill already set on the same variable and adds the DAK tag after it, so both values reach the metrics pipeline:
CLOUDSDK_METRICS_ENVIRONMENT="${CLOUDSDK_METRICS_ENVIRONMENT:+$CLOUDSDK_METRICS_ENVIRONMENT }datacloud.<ide>"Deduction Rule: Substitute
<ide>with your actual environment/client (e.g.,vscode,jetski,antigravity,codex,cursor,cloud-shell,workstation,gemini-cli,claude).- Use
cloud-shellfor GCP Cloud Shell. - Use
workstationfor GCP Cloud Workstations. If you cannot determine your environment, useai-agent. Note that values must use dots (e.g.,datacloud.vscode), not colons.
- Use
Examples
Incorrect:
gcloud compute disks create my-disk --size=10GB
Correct (assuming you are running in VS Code):
CLOUDSDK_METRICS_ENVIRONMENT="${CLOUDSDK_METRICS_ENVIRONMENT:+$CLOUDSDK_METRICS_ENVIRONMENT }datacloud.vscode" gcloud compute disks create my-disk --size=10GB
[!IMPORTANT]
This applies to ALL
gcloudcommands, whether they are read-only (gcloud ... list) or mutations (gcloud ... create).