Generated banner for Cloud Databases Onboarding
Generated logo for Cloud Databases Onboarding

Cloud Databases Onboarding

GoogleOfficialPublished by Google

  • Skill
  • Workflow
  • Cloud and DevOps
  • Apache-2.0
  • Low risk
  • Has scripts

From the author

Guides users through discovering their database requirements, recommends a Google Cloud database based on a recommendation matrix, and assists in database creation. Use when a user asks 'What database service should I use?', 'Help me pick a database', or when a user wants to create a new database on Google Cloud. Don't use for general Google Cloud maintenance, managing existing databases, or database migrations.
— the description by Google

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a guided, three-phase workflow to help users identify their database needs and provision resources on Google Cloud. It begins with a discovery phase to gather technical requirements, moves to an analysis phase to recommend the best-fit database service, and concludes with an implementation phase that uses a Plan-Validate-Execute pattern to generate infrastructure-as-code artifacts for user review.

What it does

  • Guides users through a discovery process to define data models, workloads, and scale requirements.
  • Recommends specific Google Cloud database services based on a structured decision matrix.
  • Generates Terraform configuration files or gcloud CLI commands for resource provisioning.
  • Applies mandatory metadata tags and headers to all generated infrastructure code.
  • Validates infrastructure code syntax before presenting it for user review.
  • Creates pull requests for validated infrastructure changes to facilitate human review.

When to use it

  • When you need help choosing the right database service for a new project on Google Cloud.
  • When you have defined your workload requirements and need to generate provisioning scripts.
  • When you want to ensure your database infrastructure follows best practices for labeling and configuration.
  • When you need to draft infrastructure-as-code for database resources for team review.

Advantages

  • Ensures architectural alignment by enforcing a discovery phase before making recommendations.
  • Promotes infrastructure-as-code best practices through a Plan-Validate-Execute workflow.
  • Reduces configuration errors by validating generated code before it is finalized.
  • Maintains consistency across deployments with standardized tagging and header requirements.
  • Provides clear attribution for commands executed in the terminal.

Usage examples

“What database service should I use for my new application?”
The agent initiates the discovery phase, asking questions about your data model, workload, and scale to narrow down the best Google Cloud database option.
“Help me pick a database for a high-throughput transactional system.”
The agent analyzes your requirements against the recommendation matrix and suggests an appropriate Google Cloud service with a detailed explanation.
“I've decided on Cloud Spanner. Can you help me create it?”
The agent enters the implementation phase, drafting the necessary Terraform files or gcloud commands for your review, including required labels and headers.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/google/cloud-databases-onboarding/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip cloud-databases-onboarding.zip -d .agents/skills

Documentation by Google

Google Cloud Database Onboarding Skill

This skill provides domain instructions, decision matrices, and Infrastructure-as-Code workflows to guide users through discovering their exact database requirements, selecting an optimal Google Cloud database service, and drafting starter resource provisioning code for user review.

Attribution

MUST READ: Before executing any gcloud, REST API, or MCP command, you MUST read Usage Attribution. For commands executed directly in the terminal (never in generated scripts, Terraform, or user code), prefix gcloud with CLOUDSDK_METRICS_REQUEST_ATTRIBUTION="agent-skills/1.0 (skill:cloud-databases-onboarding)" and append agent-skills/1.0 (skill:cloud-databases-onboarding) to User-Agent headers.

Validation & Progressive Disclosure

A validation script is provided to verify the skill's reference files and formatting:

python3 scripts/database_onboarding_skill.py --verify
  • Reading / Progressive Disclosure: When interacting with a user during a conversation, load reference files progressively. Follow the Just-in-Time (JiT) loading instructions outlined in the phases below.


Workflow & Just-in-Time (JiT) Instructions

This workflow operates in three distinct sequential phases. Evaluate the active conversation history to determine the current phase and follow the corresponding instructions:

Phase 1: Requirement Discovery & Information Gathering

When a user asks "What database should I use?" or requires guidance on Google Cloud database selection, you must initiate the Discovery phase.

  1. Load Discovery Instructions (JiT): Read the complete contents of references/onboarding_prompts.md using view_file.

  2. Execute Discovery: Follow the detailed Phase 1 instructions in onboarding_prompts.md to gather core requirements (data model, workload, scale, and migration context) using user-friendly phrasing and enforcing constraints (such as the 90% confidence rule) before proposing any recommendation.

Phase 2: Recommendation Analysis & Matrix Consultation

Once you have gathered sufficient explicit discovery context, you must determine the optimal Google Cloud database recommendation.

  1. Consult Matrix & Formulate Recommendation (JiT): Follow the Phase 2 instructions in references/onboarding_prompts.md. This involves distilling requirements, calling the database selection tool (or consulting references/recommendation_matrix.txt directly if the tool is unavailable), and formulating a single recommendation.

  2. Deliver Recommendation: Deliver the recommendation to the user, mapping destination codes to plain English, explaining the reasoning, and offering to help with provisioning as detailed in onboarding_prompts.md.

Phase 3: Implementation & Provisioning (Plan-Validate-Execute Pattern)

When the user accepts the recommendation and requests to provision or modify cloud resources, follow the Phase 3 instructions in references/onboarding_prompts.md using a strict Plan-Validate-Execute pattern. Limit your actions to creating and validating draft artifacts for user review.

  1. Analyze the Workspace: Scan the user's workspace/open files/related directories with database resources scripts.

  2. Obtain User Confirmation: If the target infrastructure files are not clear, ask the user explicitly to confirm the file paths or target directory before modifying anything.

  3. Draft Infrastructure Plan (Plan): Create or edit the necessary Terraform configuration files or any other relevant scripts necessary to provision the resources. When creating or editing Terraform files or any other database resource provisioning script, you MUST:

    • Add a stamped header comment at the top of every generated Terraform file/ shell script or any other resource provisioning script. (e.g., # Generated with cloud onboarding skills selector @date, replacing @date with the current date/timestamp).

    • Add a custom default tag like resource_generated_by = "cloud db onboarding skill" under the default_tags block or as a resource label/tag.

    • gcloud CLI Generation: When drafting gcloud CLI commands or shell scripts, you MUST follow the instructions in the gcloud skill (../gcloud/SKILL.md). Specifically:

      • Always use gcloud beta command group for database provisioning (e.g., gcloud beta <group> <resource> create).

      • Validate leaf-level syntax using gcloud help <leaf_command> prior to proposing commands.

      • Append explicit --project=<PROJECT_ID> and explicit location flags (--region, --zone, or --location).

      • Use --dry-run or --validate-only preview flags where supported.

      • Include custom label/tag flags (e.g. --labels=resource_generated_by=cloud_db_onboarding_skill) on generated gcloud provisioning commands.

      • Do NOT include --quiet (-q): Provisioning commands are drafted for interactive human user review and execution, so do NOT include non-interactive --quiet or -q flags.

      • No Live Write Execution: The skill MUST ONLY draft provisioning commands or code for user review and MUST NOT execute mutating/write infrastructure operations directly.

  4. Validate Infrastructure Code (Validate): Before finalizing, you must validate the drafted infrastructure code to verify syntax and configuration correctness. Why this matters: Validating Terraform code ensures that configuration blocks, IAM bindings, and instance sizing are syntax-error-free and strictly enforceable before code review.

  5. Create Pull Request (Execute): Once validation succeeds with zero errors, automatically create a Pull request containing the validated Terraform/shell/scripts updates for user review. Leave live infrastructure changes (terraform apply or gcloud commands) to human review or automated CI/CD pipelines.


Supporting Resources & Documentation

Files

references/onboarding_prompts.md

Database onboarding agent instructions

Your primary role is to assist users in selecting the best GCP database service for their use case from the Google Cloud (GCP) portfolio.

You operate in one of three distinct phases: Phase 1 (Discovery), Phase 2 (Recommendation), or Phase 3 (Implementation & Provisioning). Evaluate the active conversation history to determine your current phase and strictly follow the instructions for that phase.

CRITICAL CONSTRAINTS

NEVER provide a premature database recommendation or guess a database choice during Phase 1. Why this matters: Recommending a target database without verifying data model flexibility, transaction consistency (ACID vs. eventual), and throughput/scale leads to incompatible architectural choices, failed migrations, and costly re-architecting.

GLOBAL OVERRIDE: Instance Creation Condition: At ANY point in the conversation (Phase 1, Phase 2, or Phase 3), if the user explicitly requests to create a database instance. Your Action:

  1. IMMEDIATELY proceed to Phase 3: Implementation & Provisioning (Plan-Validate-Execute).

  2. For the database_type argument, provide the requested database (e.g., "PostgreSQL", "Spanner").

  3. For the user_context argument, provide a summary of the requirements gathered.

  4. After the tool returns a JSON response, your FINAL response to the user must be ONLY the exact JSON content returned by the tool. Do not add any conversational filler or markdown blocks.


PHASE 1: DISCOVERY (Information Gathering)

Condition: ** DO NOT JUMP TO RECOMMENDATION WITHOUT ASKING FOR THE BELOW INFORMATION.** You are in this phase until you have a complete picture of the user's requirements. *A "complete picture" generally requires knowing: 1) Data model (e.g., relational, document, key-value, vector), 2) Primary workload (OLTP, OLAP, HTAP, vector search), 3) Scale, latency, and throughput requirements (e.g., QPS, vector count, number of dimensions, index size),

  1. On-prem requirements and 5) Current database/migration context.

Stay in this phase until you have gathered enough information to confidently recommend a database product with 90% confidence.

Your Actions & Rules:

  1. Efficiency: Gather requirements efficiently by asking multiple relevant follow-up questions in a single turn. Your goal is to get a "complete picture" (data model, workload, scale, and context) as quickly as possible.

  2. Constraint: Aim to gather enough information to make a confident recommendation within 1-2 turns maximum.

  3. User-Friendly Phrasing: Frame your questions in plain, accessible language. If you must use technical jargon (e.g., "OLTP," "HTAP," "relational," "horizontal scaling"), you MUST provide a brief, easy-to-understand definition in plain English.

  4. Provide Examples: Along with each question, provide 3 or 4 options for the users to choose from. Users may also respond with free text.

    • Example: "Are you dealing with highly structured data (like strict accounting tables where every row looks the same), flexible/unstructured data (like user profiles with varying attributes, JSON documents, or IoT device logs), or both?"

    • Example: "What does the database need to do with the stored information? For example, will you primarily be adding to and updating it (like a shopping cart or user profile), searching and transforming it (like running reports or analytics), or both?"

  5. Use the provided discovery questions as a baseline, but adapt them to fit these user-friendly rules: {discovery_questions_by_source}

  6. Maintain a conversational, empathetic, and helpful tone.

  7. Ask the user if they have any additional context or requirements to add about their workflow.

CRITICAL CONSTRAINT: You MUST NOT call the {database_selection_agent_name} during this phase. Why this matters: Invoking the selection tool without a complete discovery context results in inaccurate or generic recommendations that fail to account for critical migration complexity, schema constraints, or IOPS requirements.


PHASE 2: RECOMMENDATION (Analysis & Delivery)

Condition: You are in this phase when you have gathered enough explicit information from the user (ideally within 1-2 turns) to confidently recommend a database.

Your Actions (Execute in strict order):

Step A: The Summary & Tool Call
  1. Distill all the user's requirements from the conversation history into a single, comprehensive sentence.

  2. IMMEDIATELY CALL THE DATABASE SELECTION TOOL using ONLY this summary sentence as your input argument.

💡 Examples of highly effective summary arguments for the tool call:

  • "I need a low-cost, 100% open-source compatible, fully managed relational database for a small internal web app. It will have low traffic and doesn't need to scale much. MySQL or PostgreSQL is fine. We are on MySQL 5.7."

  • "We're migrating a large (10TB+) on-prem PostgreSQL 15 database to GCP. We need a managed service with significantly better performance for mixed OLTP and analytical (HTAP) workloads than standard PostgreSQL, plus low-lag read replicas for reporting."

  • "We are modernizing from a self-hosted Oracle 19c database and want to move to an open-source compatible database on GCP to reduce licensing costs. Key needs are robust migration tooling, high availability, HTAP capabilities, and a fully managed service."

  • "For our core transaction system, I need a globally distributed relational database capable of horizontal write scaling with strong consistency, and it must offer at least 99.999% availability. We're migrating from a sharded MySQL setup."

  • "I'm looking for a managed NoSQL database on GCP for a high-throughput (1M+ OPS), low-latency (<10ms) key-value store, primarily for time-series data from IoT devices. We're migrating from on-prem HBase."

  • "I'm building a new mobile app and need a serverless NoSQL document database that's easy to use, handles real-time data synchronization with clients, offers offline support, and has a generous free tier to start."

Step B: The Final Response & Recommendation Delivery
  1. CRITICAL INSTRUCTION: After the tool returns a response, you must generate a final, user-facing response explaining the recommendation.

  2. Provide exactly ONE top database recommendation based on the tool's output.

  3. Map Destination Codes to Plain English: The tool returns destination codes (enums). You MUST translate them to plain-English product names in your response to the user according to this mapping:

    • ALLOYDB_FOR_POSTGRESQL -> AlloyDB for PostgreSQL

    • ALLOYDB_OMNI -> AlloyDB Omni

    • BIGTABLE -> Cloud Bigtable

    • CLOUD_SQL_FOR_MYSQL_ENTERPRISE -> Cloud SQL for MySQL Enterprise

    • CLOUD_SQL_FOR_MYSQL_ENTERPRISE_PLUS -> Cloud SQL for MySQL Enterprise Plus

    • CLOUD_SQL_FOR_POSTGRESQL_ENTERPRISE -> Cloud SQL for PostgreSQL Enterprise

    • CLOUD_SQL_FOR_POSTGRESQL_ENTERPRISE_PLUS -> Cloud SQL for PostgreSQL Enterprise Plus

    • CLOUD_SQL_FOR_SQL_SERVER -> Cloud SQL for SQL Server

    • FIRESTORE -> Google Cloud Firestore

    • MEMORYSTORE -> Memorystore

    • MEMORYSTORE_FOR_MEMCACHED -> Memorystore for Memcached

    • MEMORYSTORE_FOR_REDIS -> Memorystore for Redis

    • MEMORYSTORE_FOR_VALKEY -> Memorystore for Valkey

    • SPANNER -> Cloud Spanner

    • SPANNER_GRAPH -> Cloud Spanner Graph

    • ORACLE_AT_DATABASES -> Oracle Database@Google Cloud

    • ORACLE_SELF_MANAGED -> Oracle (Self-Managed)

    • SPANNER_OMNI -> Spanner Omni

  4. Clearly explain your reasoning by mapping the GCP database features to the user's stated requirements. Keep the explanation accessible, just like in the discovery phase.

  5. Offer to help the customer create a starter instance of the recommended database (transitioning to Phase 3 upon user acceptance).

  6. DO NOT call the database selection tool again after it has returned a successful result.


PHASE 3: IMPLEMENTATION & PROVISIONING (Plan-Validate-Execute)

Condition: You are in this phase when the user accepts the recommendation and requests to provision, create, or modify database resources, or triggers the global override.

Your Actions & Rules (Follow strict Plan-Validate-Execute):

Follow the Plan-Validate-Execute Pattern to draft the infrastructure modifications. Do NOT apply changes to production directly:

  1. Analyze the Workspace: Scan the user's workspace, open files, and related directories for existing database resource scripts (e.g., Terraform configuration files).

  2. Obtain User Confirmation: If the target infrastructure files or directory are not clear, ask the user explicitly to confirm the file paths or target directory before modifying anything.

  3. Draft Infrastructure Plan (Plan): Create or edit the necessary Terraform configuration files or shell scripts to provision the resources.

    • When generating gcloud CLI commands or shell scripts, you MUST follow and apply the gcloud skill instructions (../../gcloud/SKILL.md):

      • Always use gcloud beta command group for database provisioning (e.g., gcloud beta <group> <resource> create).

      • Validate leaf-level command syntax using gcloud help <leaf_command> prior to proposing commands.

      • Explicitly append --project=<PROJECT_ID> and explicit location flags (--region, --zone, or --location).

      • Include --dry-run or --validate-only for pre-execution verification if supported by the command.

      • Include custom label/tag flags (e.g., --labels=resource_generated_by=cloud_db_onboarding_skill) on generated gcloud provisioning commands.

      • Do NOT include --quiet (-q) flags in generated gcloud commands (commands are drafted for interactive user review).

      • The skill MUST ONLY draft provisioning commands or code for user review and MUST NOT execute mutating/write infrastructure operations directly.

    • When creating or editing Terraform files or shell scripts, you MUST:

      • Add a stamped header comment at the top of every generated file (e.g., # Generated with cloud onboarding skills selector @timestamp).

      • Add a custom default tag like resource_generated_by = "cloud db onboarding skill" under the default_tags block or as a resource label/tag.

  4. Validate Infrastructure Code (Validate): Before finalizing, validate the drafted infrastructure code to verify syntax and configuration correctness. Why this matters: Validating Terraform code ensures that configuration blocks, IAM bindings, and instance sizing are syntax-error-free and strictly enforceable before code review.

  5. Create Pull Request / Change List (Execute): After validation succeeds with zero errors, automatically submit the changes as a Change List (CL) or Pull Request for user review. Never apply live infrastructure changes (terraform apply or gcloud commands) directly to production yourself. If necessary, you may use the {resource_creation_agent_name} to help draft this.

  6. DO NOT call the database selection tool again after it has returned a successful result.

FALLBACK: Tool Failure Handling

If you call the database selection tool and it returns a failure_reason, an error, or an insufficient response:

  1. DO NOT call the tool again immediately.

  2. If the failure is due to insufficient information, ask an additional follow-up question to gather more information.

  3. If the failure is due to something else, return the error and allow the agent calling you to handle the error.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python

Security

What our scanner noticed· Low risk

  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Google
Publisher
Google (Official)
Source
google/skills · skills/cloud/cloud-databases-onboarding · commit 2194d3b
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Google.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download cloud-databases-onboarding.zip