GCP DrawIO Diagram Generator
a5c-ai/babysitter
Creates DrawIO XML diagrams of Google Cloud architectures from text or images, and analyzes existing .drawio files to list their GCP components.
Functionally tests local Dataflow pipeline changes against the main branch using ephemeral GCP resources and gated approvals.
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testing --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/smt_functional_testing .claude/skills/smt-functional-testing && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .claude/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/smt_functional_testing .agents/skills/smt-functional-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .agents/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/smt_functional_testing .cursor/skills/smt-functional-testing && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .cursor/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GoogleCloudPlatform/DataflowTemplates.git --path .agents/skills/smt_functional_testing--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/smt_functional_testing .gemini/skills/smt-functional-testing && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .gemini/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/smt_functional_testing .github/skills/smt-functional-testing && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .github/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GoogleCloudPlatform/DataflowTemplates smt-functional-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GoogleCloudPlatform/DataflowTemplates.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/smt_functional_testing .opencode/skills/smt-functional-testing && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "smt-functional-testing" agent skill from https://github.com/GoogleCloudPlatform/DataflowTemplates/tree/main/.agents/skills/smt_functional_testing into .opencode/skills/smt-functional-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "smt-functional-testing", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
smt-functional-testingFunctionally tests local Dataflow pipeline changes against the main branch using ephemeral GCP resources and gated approvals.
Smt Functional Testing is an agent skill from GoogleCloudPlatform/DataflowTemplates. Functionally tests local Dataflow pipeline changes against the main branch using ephemeral GCP resources and gated approvals. Use ONLY when functionally testing one of these specific migration templates: gcs-spanner-dv, sourcedb-to-spanner, datastream-to-spanner, spanner-to-sourcedb. Skip entirely for other templates. Don't use for deploying templates to production or debugging a running production pipeline without testing.
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `TEST.md`).
It sits in Development. It works with Google Cloud and Google BigQuery. The repository describes itself as: Cloud Dataflow Google-provided templates for solving in-Cloud data tasks. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit c95daba. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are env).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SOURCE_DB_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Smt Functional Testing loads about 2.8k tokens when it runs. Until then it costs about 113 tokens; SKILL.md has 149 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
* A `.env.testing` file exists in the workspace root.## Workspace Setup: `.env.testing` SchemaE_TYPE` is not specified by the user or `.env.testing`, **you MUST ALWAYS default to `WORKER_MACHINE_TYPE="n2-standard-41. **Sourcing State**: Execute `source .env.testing` in the terminal or load the variables into context. Generate a unied, update `BUILT_TEMPLATE_GCS_PATH` in `.env.testing`.B_USER` and `SOURCE_DB_PASSWORD` in the `.env.testing` file. Alternatively, let the user know they can choose to have yoate `CUSTOM_TRANSFORMATION_JAR_PATH` in `.env.testing` so Terraform uses it. Do NOT prompt the user to do these steps th`BUILT_TEMPLATE_GCS_PATH` read from the `.env.testing` state.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GoogleCloudPlatform/DataflowTemplates at commit c95daba, republished under its Apache-2.0 licence (© GoogleCloudPlatform). 149 words, ~2,840 tokens.
.claude/skills/smt-functional-testing/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub./smt-functional-testing
This skill is STRICTLY restricted to testing the following templates:
gcs-spanner-dvsourcedb-to-spannerdatastream-to-spannerspanner-to-sourcedbIf the template being tested is NOT one of the above, DO NOT use this skill. Skip it entirely.
To functionally test local Dataflow pipeline changes against the main branch. The IDE agent acts as an orchestrator to analyze code, define topologies, provision isolated ephemeral environments, and verify data. Pause for user approval before state-changing actions and halt immediately if any terminal command fails.
gcloud and terraform CLIs are authenticated./smt-e2e-dataflow-debugging skill is active and available..env.testing file exists in the workspace root..env.testing Schema# Required Fundamentals
PROJECT_ID=
REGION=
GCS_STAGING_BUCKET=
BUILT_TEMPLATE_GCS_PATH=
WORKER_MACHINE_TYPE="n2-standard-4"
# Infrastructure (Leave blank for agent to provision ephemerally)
SOURCE_INSTANCE_NAME=
SOURCE_DATABASE_NAME=
SOURCE_DB_USER=
SOURCE_DB_PASSWORD=
TARGET_SPANNER_INSTANCE=
TARGET_SPANNER_DATABASE=
CUSTOM_TRANSFORMATION_JAR_PATH=
## Global Agent Rules
* **Fail-Fast Protocol**: If any executed terminal command returns an error or non-zero exit code, STOP IMMEDIATELY. Output the error to the user and ask for intervention. Do not attempt autonomous retries.
* **Worker Machine Type Directive & Fallback Rule**: When submitting or staging Dataflow jobs (via Terraform, gcloud, or flex template run), you MUST explicitly specify a worker machine type with at least 4 vCPUs. If `WORKER_MACHINE_TYPE` is not specified by the user or `.env.testing`, **you MUST ALWAYS default to `WORKER_MACHINE_TYPE="n2-standard-4"`**. Omitting this parameter or leaving it blank will cause Dataflow template launch validation to fail with a machine specification policy violation.
* **Syntax Strictness**:
* Spanner DDL: Ensure absolute accuracy. Rigorously verify that WHERE clauses in partial indexes are syntactically valid for Cloud Spanner because Cloud Spanner enforces a strict subset of SQL functions in WHERE clauses for partial indexes, and invalid functions will cause DDL execution to fail.
* **Configuration Files**: Ensure any `shardingContextFilePath` or similar configuration strictly adheres to a valid JSON map structure to avoid parsing issues during pipeline runtime.
* **Parameters**: Do not invent unrecognized Dataflow parameters or session file names.
## Workflow Phases
### Phase 1: Code Analysis & Test Case Generation
1. **Sourcing State**: Execute `source .env.testing` in the terminal or load the variables into context. Generate a unique run ID: `export TEST_RUN_ID=$(LC_ALL=C tr -dc 'a-z0-9' < /dev/urandom | head -c 6)`.
2. **Analyze Diff**: Execute `git diff main...` and analyze the output:
* Summarize the code changes in plain English.
* Identify the Dataflow pipeline components, classes, or transforms affected.
* Describe the potential impact on the pipeline's data flow and logic.
3. **Determine Template Path**:
* **No changes in pipeline code**: If no pipeline code changes are being tested, use the latest available public Dataflow template path (e.g., `gs://dataflow-templates-us-central1/latest/flex/Sourcedb_to_Spanner_Flex`).
* **New changes present in pipeline code**: If there are local changes, ask the user to stage the new changes. Provide the exact command to run with flags to minimize build time (e.g., if testing for <TEMPLATE_NAME>: `mvn clean package -PtemplatesStage -DskipTests -Dspotless.check.skip=true -Dcheckstyle.skip=true -DprojectId="$PROJECT_ID" -DbucketName="$GCS_STAGING_BUCKET" -DstagePrefix="templates-${TEST_RUN_ID}" -DtemplateName="<TEMPLATE_NAME>" -pl <RELATIVE_PATH_TO_TEMPLATE> -am`). Offer the user the option for you to run this command autonomously. Once staged, update `BUILT_TEMPLATE_GCS_PATH` in `.env.testing`.
4. **Generate Test Matrix**: Based on the changes, generate test cases covering:
* Happy paths for the intended new/modified logic.
* Edge cases related to data types, nulls, empty inputs relevant to the changes.
* Error scenarios, including malformed data handling and Dead Letter Queue (DLQ) routing.
* Regression scenarios to ensure existing functionality isn't broken.
* *Format*: For each test case, briefly describe the scenario and the expected outcome.
5. **Approval Gate 1 (Test Cases)**: Output the proposed test cases (and confirm the template staging plan). STOP AND WAIT. Do not proceed until the user explicitly approves.
### Phase 2: Environment Topology & Automated Provisioning
1. **Topology & Sharding Analysis**: Before drafting any schemas, analyze the target pipeline to determine the correct architecture:
* **Direction & Dialect**: Identify the source and destination databases (e.g., sourcedb-to-spanner is SQL->Spanner; spanner-to-sourcedb is Spanner->SQL) and their expected dialects (e.g., PostgreSQL vs MySQL).
* **Sharding Requirement**: Determine if the tested code dictates a sharded test setup. If a sharded setup is required, explicitly design 2 physical database instances, each containing 2 logical schemas, yielding a total of 4 logical shards.
2. **Design Setup**: Design the Source and Target table schemas (DDL) matching the identified dialects, and generate specific INSERT statements (DML) to simulate the scenarios.
* Ensure that all test cases and edge cases defined in Phase 1 will be comprehensively covered.
3. **Custom/Sharding Transformation Planning**: If the test requires a custom or sharding transformation, specify the necessary Java logic here during the schema and data planning phase (as it directly impacts test cases and success data).
4. **Database Credentials**: To insert schemas into CloudSQL, ask the user to enter `SOURCE_DB_USER` and `SOURCE_DB_PASSWORD` in the `.env.testing` file. Alternatively, let the user know they can choose to have you autonomously create a user and connect to the database using that.
5. **Expected State & Success Criteria**: Define the EXPECTED data/state at the destination. Defining the success criteria for each data row is important and must be explicitly stated (i.e., what should the destination rows look like, what are the expected DLQ entries, etc.). All generated GCP resource names must include the `-${TEST_RUN_ID}` suffix.
6. **Test Case Mapping**: Present the setup using the following format:
| Test Case ID | Description | Source Setup (Table/Data Highlights) | Expected Destination State & Success Criteria |
|---|---|---|---|
| TC01 | Happy Path | `users` table with standard input | Row exists in destination `users` with transformed fields. No DLQ entries. |
7. **Approval Gate 2 (Environment)**: Output the Topology Analysis, Test Case Mapping table (with explicit success criteria), the raw DDL/DML, and any proposed custom transformation logic. STOP AND WAIT. Do not proceed until the user approves.
8. **Execute Provisioning (Autonomous)**: Upon approval, autonomously save the DDL/DML to local files (e.g., `source_schema_${TEST_RUN_ID}.sql`, `target_schema_${TEST_RUN_ID}.ddl`) and execute the required `gcloud sql` and `gcloud spanner` provisioning commands in the terminal to create the schemas and insert the data. If a custom transformation was approved, autonomously build the JAR, upload it to GCS (`gs://${GCS_STAGING_BUCKET}/test_configs_${TEST_RUN_ID}/`), and update `CUSTOM_TRANSFORMATION_JAR_PATH` in `.env.testing` so Terraform uses it. Do NOT prompt the user to do these steps themselves.
### Phase 3: Configuration Staging
1. **Generate Configs**: Based on the test cases and topology, generate necessary configuration files locally (e.g., session files for sharding, override files, DLQ sinks).
2. **Approval Gate 3 (Configs)**: Output the contents of the files for review. STOP AND WAIT.
3. **Execute Upload**: Upon approval, execute `gcloud storage cp` to upload the files to a unique path: `gs://${GCS_STAGING_BUCKET}/test_configs_${TEST_RUN_ID}/`.
### Phase 4: Job Execution via Terraform
1. **Dynamic TFVars**: Generate and autonomously edit the Terraform variables file named `test_${TEST_RUN_ID}.tfvars` incorporating the dynamic resources from Phase 2, the uploaded configs from Phase 3, and the `BUILT_TEMPLATE_GCS_PATH` read from the `.env.testing` state.
2. **Approval Gate 4 (TFVars)**: Output the contents of the generated `.tfvars` file (job parameters). STOP AND WAIT for user confirmation.
3. **Stage the Job (Autonomous)**: Upon approval of the job parameters, autonomously execute the necessary commands (e.g., `terraform apply`) in the terminal to stage the job. Do NOT ask the user to execute it themselves.
4. **Monitoring & Debugging Gate**: Pause the primary workflow here while the job is running. Monitor the terminal/context for the completion of the job execution. If you need to check the progress of the already staged job or debug any runtime errors, you should utilize the `/smt-e2e-dataflow-debugging` skill. Note: The `/smt-e2e-dataflow-debugging` skill is STRICTLY for checking progress and debugging an already staged Dataflow job, not for staging the job itself. DO NOT PROCEED to Phase 5 until a definitive completion signal is observed.
### Phase 5: Automated Verification & Teardown
1. **Verification Queries**: Once Phase 4 is definitively complete, execute targeted terminal queries (`gcloud spanner databases execute-sql`, `gcloud sql execute`, etc.) against the destination tables and DLQs to verify the expected state for EACH test case.
2. **Reporting**: Output a final Markdown report:
# Dataflow Test Report - Run ID: ${TEST_RUN_ID}
## Test Case Results:
| Test Case ID | Status | Expected | Actual | Notes |
|---|---|---|---|---|
| TC01 | PASS | ... | ... | |
| TC02 | FAIL | ... | ... | Field 'X' was not handled as expected |
3. **Teardown Draft**: Draft comprehensive cleanup commands tailored to the specific topology provisioned in Phase 2:
```bash
# Example commands, adjust based on actual provisioned resources
gcloud sql instances delete ${SOURCE_INSTANCE_NAME}-${TEST_RUN_ID} --project=${PROJECT_ID} --quiet
gcloud spanner instances delete ${TARGET_SPANNER_INSTANCE}-${TEST_RUN_ID} --project=${PROJECT_ID} --quiet
gcloud storage rm -r gs://${GCS_STAGING_BUCKET}/test_configs_${TEST_RUN_ID}
rm -f test_${TEST_RUN_ID}.tfvars source_schema_${TEST_RUN_ID}.sql target_schema_${TEST_RUN_ID}.ddl© GoogleCloudPlatform, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in .agents/skills/smt_functional_testing of GoogleCloudPlatform/DataflowTemplates.
Open the folder on GitHubat commit c95daba
Smt Functional Testing next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Smt Functional Testing this skillGoogleCloudPlatform/DataflowTemplates | 1.3k | — | ~2.8k | Automated safety check: Notes | Apache-2.0 | |
| GCP DrawIO Diagram Generatora5c-ai/babysitter | 1.8k | — | ~3.7k | Automated safety check: Pass | MIT | |
| Retail Product Search Agentgoogle/adk-recipes | 10k | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Cxas Configurable DashboardsGoogleCloudPlatform/cxas-scrapi | 106 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| BigQuery Slot and Cost Optimizergoogle/skills | 21k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| GCP Audit Logssickn33/agentic-awesome-skills | 47k | 2 repos | ~3.8k | Automated safety check: Pass | MIT |
a5c-ai/babysitter
Creates DrawIO XML diagrams of Google Cloud architectures from text or images, and analyzes existing .drawio files to list their GCP components.
google/adk-recipes
Builds a retail product search agent on Google Cloud, from catalog ingestion into BigQuery and Vector Search to ADK scaffolding, evaluation and Cloud Run deployment.
GoogleCloudPlatform/cxas-scrapi
Author, validate, and manage Contact Center AI (CCAI) Insights Configurable Dashboards.
google/skills
Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.
sickn33/agentic-awesome-skills
Configure GCP Cloud Audit Logs for compliance. An agent skill from sickn33/agentic-awesome-skills.
K-Dense-AI/scientific-agent-skills
Queries and downloads public cancer imaging data from NCI Imaging Data Commons.
GoogleCloudPlatform/DataflowTemplates
Debugs logical errors and data discrepancies in Dataflow templates by launching jobs via Terraform and comparing source (e.g.
GoogleCloudPlatform/DataflowTemplates
Specific runner skill that delegates to the Template-Agnostic Meta-Test Orchestrator for the datastream-to-spanner (CDC) template.
GoogleCloudPlatform/DataflowTemplates
Specific runner skill that creates integration tests for the gcs-spanner-dv (Data Validation) template.
GoogleCloudPlatform/DataflowTemplates
Specific runner skill that delegates to the Template-Agnostic Meta-Test Orchestrator for the sourcedb-to-spanner (Bulk) template.
GoogleCloudPlatform/DataflowTemplates
Specific runner skill that delegates to the Template-Agnostic Meta-Test Orchestrator for the spanner-to-sourcedb (Reverse Migration) template.
GoogleCloudPlatform/DataflowTemplates
Guide for implementing a database source connector in the v2/datastream-to-spanner forward migration Dataflow template.
Works with
Categories
Functionally tests local Dataflow pipeline changes against the main branch using ephemeral GCP resources and gated approvals. Smt Functional Testing is an agent skill from GoogleCloudPlatform/DataflowTemplates. Functionally tests local Dataflow pipeline changes against the main branch using ephemeral GCP resources and gated approvals.
Smt Functional Testing fits situations like: deploying templates to production; debugging a running production pipeline without testing.
Run `npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a claude-code`. Or copy the skill folder (.agents/skills/smt_functional_testing in GoogleCloudPlatform/DataflowTemplates) into .claude/skills/smt-functional-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a codex`. Or copy the skill folder (.agents/skills/smt_functional_testing in GoogleCloudPlatform/DataflowTemplates) into .agents/skills/smt-functional-testing in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GoogleCloudPlatform/DataflowTemplates --skill smt-functional-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/smt-functional-testing, .gemini/skills/smt-functional-testing, .github/skills/smt-functional-testing and .opencode/skills/smt-functional-testing in your project.
Going by SKILL.md and its folder, Smt Functional Testing needs credentials named SOURCE_DB_PASSWORD.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Smt Functional Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Smt Functional Testing: GCP DrawIO Diagram Generator (a5c-ai/babysitter, 1.8k stars), Retail Product Search Agent (google/adk-recipes, 10k stars), Cxas Configurable Dashboards (GoogleCloudPlatform/cxas-scrapi, 106 stars) and BigQuery Slot and Cost Optimizer (google/skills, 21k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GoogleCloudPlatform (a GitHub organization) maintains it in GoogleCloudPlatform/DataflowTemplates, which has 1,315 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.
Source: GoogleCloudPlatform/DataflowTemplates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.