[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-cloud-context-engineering-init":3,"mdc-4w6y5b-key":35,"related-org-google-cloud-context-engineering-init":864,"related-repo-google-cloud-context-engineering-init":1051},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"context-engineering-init","initialize context engineering and database connections","Orchestrates the initialization workflow for context engineering, and provides helper workflow for setting up database connections by creating or updating tools.yaml configurations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"google-cloud","Google Cloud","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-cloud.png","GoogleCloudPlatform",[13,17,20,23],{"name":14,"slug":15,"type":16},"Configuration","configuration","tag",{"name":18,"slug":19,"type":16},"Database","database",{"name":21,"slug":22,"type":16},"Engineering","engineering",{"name":9,"slug":8,"type":16},34,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fdb-context-enrichment","2026-07-18T05:47:59.493278",null,11,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"A context engineering agent designed to generate, manage, and optimize structured context sets from your database schemas. It bridges the gap between Large Language Models (LLMs) and databases by compiling, evaluating, and maintaining the precise operational context needed for highly accurate natural language-to-SQL query generation.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fdb-context-enrichment\u002Ftree\u002FHEAD\u002Fplugin\u002Fskills\u002Fcontext-engineering-init","---\nname: context-engineering-init\ndescription: Orchestrates the initialization workflow for context engineering, and provides helper workflow for setting up database connections by creating or updating tools.yaml configurations.\n---\n\n> **Load the `context-engineering-workflow` skill first.** It holds the shared context this phase depends on: workspace layout, state file conventions, phase order, and safety protocol. Do not proceed with this phase without reading it.\n\n# Phase: Setup & Connection Configuration\n\n## Goal\nScaffold the local `autoctx\u002F` workspace and establish verified database connections to prepare the environment for context engineering.\n\n## Initialization Workflow\n\nFollow these steps when the user asks to initialize the environment:\n\n1.  **Confirm Working Directory:** Explicitly state the current working directory to the user. Explain that the initialization will create an `autoctx\u002F` folder in this directory to hold `tools.yaml`, `state.md`, and `experiments\u002F`. Ask them to confirm if this is the correct location before proceeding.\n2.  **Check Existing Infrastructure:**\n    - Check if the `autoctx\u002F` directory exists.\n    - If it exists, verify if it contains valid `tools.yaml` and `state.md` files. If it appears to be an unrelated folder or corrupted, STOP and ask the user how to proceed (e.g., use a different name or overwrite).\n    - If it is a valid Autoctx folder and contains all items, inform the user it's already initialized. Otherwise, proceed to create missing items inside `autoctx\u002F`.\n3.  **Setup Toolbox Configuration:** If `tools.yaml` is missing inside `autoctx\u002F`, follow the primary \"1. Create a New tools.yaml\" workflow documented below in the **Toolbox Config Helper** section.\n4.  **Create State Tracker:** If `state.md` is missing inside `autoctx\u002F`, create it with header “context authoring experiment state tracking”.\n5.  **Initialize Experiments Directory:** If `experiments\u002F` is missing inside `autoctx\u002F`, create an empty `experiments\u002F` directory inside `autoctx\u002F`.\n\n## Output\n\nUpon successful completion, the workspace must contain:\n- `autoctx\u002F`: The dedicated workspace directory.\n    - `tools.yaml`: A structurally sound configuration file for the Toolbox MCP Server.\n    - `state.md`: The external state tracker for hill-climbing iterations.\n    - `experiments\u002F`: The base directory prepared to store all hill-climbing run artifacts (e.g. baseline contexts, evaluation reports).\n\n## Final Summary\n\nConclude by providing a succinct summary to the user:\n- State whether the workspace was initialized newly or if existing files were preserved.\n- Instruct the user to reload the MCP toolbox so any new database connections take effect:\n    - **Gemini CLI**: run `\u002Fmcp reload`.\n    - **Claude Code**: run `\u002Fmcp`, select `toolbox`, and select `Reconnect` — or `\u002Fquit` and relaunch Claude Code.\n    - **Antigravity CLI**: run `\u002Fmcp`, select `toolbox`, and select `Restart`.\n- Inform them they are now ready to proceed to the next phase (e.g., the Bootstrap workflow).\n\n---\n\n# Toolbox Config Helper\n\nThis section contains standalone instructions for managing the `tools.yaml` file for the GenAI Toolbox. You can execute these if the user explicitly asks to add or list database connections.\n\n## Credentials\n\nFor Google Cloud databases, the system uses Application Default Credentials (ADC) and IAM Authentication. Providing a user and password is not supported.\n\nWhen collecting information from the user, inform the user that only Application Default Credentials (ADC) are supported for authentication. They do not need to provide a username or password.\n\n**Sample Message:**\n> \"I'll help you configure the database connection in `tools.yaml`. Note that the system only supports Application Default Credentials (ADC) for authentication, so you don't need to provide a username or password. Please ensure that the IAM account you are using has the required permissions to access the database.\n>\n> Could you please provide the following details:\n> - Google Cloud Project ID:\n> - Region:\n> ... (other required fields based on database type)\"\n\n## Primary Workflows\n\n### 1. Create a New `tools.yaml`\n\n1.  **Identify Database Type:** Ask the user which database they want to configure:\n    - Cloud SQL Postgres\n    - Cloud SQL MySQL\n    - AlloyDB Postgres\n    - Spanner\n2.  **Collect Information:** Request all **Required Information** based on the templates inside this directory. Do NOT assume missing fields; ask the user for them explicitly.\n3.  **Generate Configuration:** Replace all placeholders with the user's provided values and generate the complete `tools.yaml` content. Save it to the target location (e.g., `autoctx\u002Ftools.yaml` for Autoctx workflows, or `tools.yaml` in the current directory for standalone use).\n4.  **Validate:** After saving, validate the new connection using the toolbox script, replacing `\u003Cconfig_path>` with the actual path to the file:\n    `uvx toolbox-server@1.4.0 --config \u003Cconfig_path> invoke \u003Cdata_source_name>-list-schemas`\n\n### 2. Add a Database to an Existing `tools.yaml`\n\n1.  **Identify Database Type:** Ask the user for the type of the new database connection they wish to add.\n2.  **Collect Information:** Request the required information for the new connection, including a new, unique `\u003Cdata_source_name>`.\n3.  **Read Existing File:** Read the content of the existing `tools.yaml` from the target location.\n4.  **Generate and Append:** Generate the YAML snippets for the new `sources` and `tools` sections. Append these new entries to the respective sections in the existing file content.\n5.  **Save Configuration:** Save the updated content back to the file.\n6.  **Validate:** Validate only the newly added connection, replacing `\u003Cconfig_path>` with the actual path to the file:\n    `uvx toolbox-server@1.4.0 --config \u003Cconfig_path> invoke \u003Cdata_source_name>-list-schemas`\n\n### 3. List Existing Database Connections\n\n1.  **Check and Read `tools.yaml`:** Check for the `tools.yaml` file. If it doesn't exist, inform the user.\n2.  **Parse and List:** Parse the YAML content and list the names of all configured data sources found under the `sources:` key limit.\n\n## Validation\n\nTo verify that a specific database connection is configured correctly at any time, run the validation script with the target data source name:\n`uvx toolbox-server@1.4.0 --config tools.yaml invoke \u003Cdata_source_name>-list-schemas`\n\n## Templates & Reference\n\nFor the specific fields required for each database type and the exact YAML structure to use, refer to the templates in this directory (...\u002Freferences\u002Finit\u002F...).\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,67,74,81,94,100,105,294,300,305,351,357,362,469,473,478,490,496,501,506,514,547,553,565,674,685,785,791,836,842,853,859],{"type":41,"tag":42,"props":43,"children":44},"element","blockquote",{},[45],{"type":41,"tag":46,"props":47,"children":48},"p",{},[49,65],{"type":41,"tag":50,"props":51,"children":52},"strong",{},[53,56,63],{"type":54,"value":55},"text","Load the ",{"type":41,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":54,"value":62},"context-engineering-workflow",{"type":54,"value":64}," skill first.",{"type":54,"value":66}," It holds the shared context this phase depends on: workspace layout, state file conventions, phase order, and safety protocol. Do not proceed with this phase without reading it.",{"type":41,"tag":68,"props":69,"children":71},"h1",{"id":70},"phase-setup-connection-configuration",[72],{"type":54,"value":73},"Phase: Setup & Connection Configuration",{"type":41,"tag":75,"props":76,"children":78},"h2",{"id":77},"goal",[79],{"type":54,"value":80},"Goal",{"type":41,"tag":46,"props":82,"children":83},{},[84,86,92],{"type":54,"value":85},"Scaffold the local ",{"type":41,"tag":57,"props":87,"children":89},{"className":88},[],[90],{"type":54,"value":91},"autoctx\u002F",{"type":54,"value":93}," workspace and establish verified database connections to prepare the environment for context engineering.",{"type":41,"tag":75,"props":95,"children":97},{"id":96},"initialization-workflow",[98],{"type":54,"value":99},"Initialization Workflow",{"type":41,"tag":46,"props":101,"children":102},{},[103],{"type":54,"value":104},"Follow these steps when the user asks to initialize the environment:",{"type":41,"tag":106,"props":107,"children":108},"ol",{},[109,151,206,237,259],{"type":41,"tag":110,"props":111,"children":112},"li",{},[113,118,120,125,127,133,135,141,143,149],{"type":41,"tag":50,"props":114,"children":115},{},[116],{"type":54,"value":117},"Confirm Working Directory:",{"type":54,"value":119}," Explicitly state the current working directory to the user. Explain that the initialization will create an ",{"type":41,"tag":57,"props":121,"children":123},{"className":122},[],[124],{"type":54,"value":91},{"type":54,"value":126}," folder in this directory to hold ",{"type":41,"tag":57,"props":128,"children":130},{"className":129},[],[131],{"type":54,"value":132},"tools.yaml",{"type":54,"value":134},", ",{"type":41,"tag":57,"props":136,"children":138},{"className":137},[],[139],{"type":54,"value":140},"state.md",{"type":54,"value":142},", and ",{"type":41,"tag":57,"props":144,"children":146},{"className":145},[],[147],{"type":54,"value":148},"experiments\u002F",{"type":54,"value":150},". Ask them to confirm if this is the correct location before proceeding.",{"type":41,"tag":110,"props":152,"children":153},{},[154,159],{"type":41,"tag":50,"props":155,"children":156},{},[157],{"type":54,"value":158},"Check Existing Infrastructure:",{"type":41,"tag":160,"props":161,"children":162},"ul",{},[163,175,194],{"type":41,"tag":110,"props":164,"children":165},{},[166,168,173],{"type":54,"value":167},"Check if the ",{"type":41,"tag":57,"props":169,"children":171},{"className":170},[],[172],{"type":54,"value":91},{"type":54,"value":174}," directory exists.",{"type":41,"tag":110,"props":176,"children":177},{},[178,180,185,187,192],{"type":54,"value":179},"If it exists, verify if it contains valid ",{"type":41,"tag":57,"props":181,"children":183},{"className":182},[],[184],{"type":54,"value":132},{"type":54,"value":186}," and ",{"type":41,"tag":57,"props":188,"children":190},{"className":189},[],[191],{"type":54,"value":140},{"type":54,"value":193}," files. If it appears to be an unrelated folder or corrupted, STOP and ask the user how to proceed (e.g., use a different name or overwrite).",{"type":41,"tag":110,"props":195,"children":196},{},[197,199,204],{"type":54,"value":198},"If it is a valid Autoctx folder and contains all items, inform the user it's already initialized. Otherwise, proceed to create missing items inside ",{"type":41,"tag":57,"props":200,"children":202},{"className":201},[],[203],{"type":54,"value":91},{"type":54,"value":205},".",{"type":41,"tag":110,"props":207,"children":208},{},[209,214,216,221,223,228,230,235],{"type":41,"tag":50,"props":210,"children":211},{},[212],{"type":54,"value":213},"Setup Toolbox Configuration:",{"type":54,"value":215}," If ",{"type":41,"tag":57,"props":217,"children":219},{"className":218},[],[220],{"type":54,"value":132},{"type":54,"value":222}," is missing inside ",{"type":41,"tag":57,"props":224,"children":226},{"className":225},[],[227],{"type":54,"value":91},{"type":54,"value":229},", follow the primary \"1. Create a New tools.yaml\" workflow documented below in the ",{"type":41,"tag":50,"props":231,"children":232},{},[233],{"type":54,"value":234},"Toolbox Config Helper",{"type":54,"value":236}," section.",{"type":41,"tag":110,"props":238,"children":239},{},[240,245,246,251,252,257],{"type":41,"tag":50,"props":241,"children":242},{},[243],{"type":54,"value":244},"Create State Tracker:",{"type":54,"value":215},{"type":41,"tag":57,"props":247,"children":249},{"className":248},[],[250],{"type":54,"value":140},{"type":54,"value":222},{"type":41,"tag":57,"props":253,"children":255},{"className":254},[],[256],{"type":54,"value":91},{"type":54,"value":258},", create it with header “context authoring experiment state tracking”.",{"type":41,"tag":110,"props":260,"children":261},{},[262,267,268,273,274,279,281,286,288,293],{"type":41,"tag":50,"props":263,"children":264},{},[265],{"type":54,"value":266},"Initialize Experiments Directory:",{"type":54,"value":215},{"type":41,"tag":57,"props":269,"children":271},{"className":270},[],[272],{"type":54,"value":148},{"type":54,"value":222},{"type":41,"tag":57,"props":275,"children":277},{"className":276},[],[278],{"type":54,"value":91},{"type":54,"value":280},", create an empty ",{"type":41,"tag":57,"props":282,"children":284},{"className":283},[],[285],{"type":54,"value":148},{"type":54,"value":287}," directory inside ",{"type":41,"tag":57,"props":289,"children":291},{"className":290},[],[292],{"type":54,"value":91},{"type":54,"value":205},{"type":41,"tag":75,"props":295,"children":297},{"id":296},"output",[298],{"type":54,"value":299},"Output",{"type":41,"tag":46,"props":301,"children":302},{},[303],{"type":54,"value":304},"Upon successful completion, the workspace must contain:",{"type":41,"tag":160,"props":306,"children":307},{},[308],{"type":41,"tag":110,"props":309,"children":310},{},[311,316,318],{"type":41,"tag":57,"props":312,"children":314},{"className":313},[],[315],{"type":54,"value":91},{"type":54,"value":317},": The dedicated workspace directory.\n",{"type":41,"tag":160,"props":319,"children":320},{},[321,331,341],{"type":41,"tag":110,"props":322,"children":323},{},[324,329],{"type":41,"tag":57,"props":325,"children":327},{"className":326},[],[328],{"type":54,"value":132},{"type":54,"value":330},": A structurally sound configuration file for the Toolbox MCP Server.",{"type":41,"tag":110,"props":332,"children":333},{},[334,339],{"type":41,"tag":57,"props":335,"children":337},{"className":336},[],[338],{"type":54,"value":140},{"type":54,"value":340},": The external state tracker for hill-climbing iterations.",{"type":41,"tag":110,"props":342,"children":343},{},[344,349],{"type":41,"tag":57,"props":345,"children":347},{"className":346},[],[348],{"type":54,"value":148},{"type":54,"value":350},": The base directory prepared to store all hill-climbing run artifacts (e.g. baseline contexts, evaluation reports).",{"type":41,"tag":75,"props":352,"children":354},{"id":353},"final-summary",[355],{"type":54,"value":356},"Final Summary",{"type":41,"tag":46,"props":358,"children":359},{},[360],{"type":54,"value":361},"Conclude by providing a succinct summary to the user:",{"type":41,"tag":160,"props":363,"children":364},{},[365,370,464],{"type":41,"tag":110,"props":366,"children":367},{},[368],{"type":54,"value":369},"State whether the workspace was initialized newly or if existing files were preserved.",{"type":41,"tag":110,"props":371,"children":372},{},[373,375],{"type":54,"value":374},"Instruct the user to reload the MCP toolbox so any new database connections take effect:\n",{"type":41,"tag":160,"props":376,"children":377},{},[378,395,436],{"type":41,"tag":110,"props":379,"children":380},{},[381,386,388,394],{"type":41,"tag":50,"props":382,"children":383},{},[384],{"type":54,"value":385},"Gemini CLI",{"type":54,"value":387},": run ",{"type":41,"tag":57,"props":389,"children":391},{"className":390},[],[392],{"type":54,"value":393},"\u002Fmcp reload",{"type":54,"value":205},{"type":41,"tag":110,"props":396,"children":397},{},[398,403,404,410,412,418,420,426,428,434],{"type":41,"tag":50,"props":399,"children":400},{},[401],{"type":54,"value":402},"Claude Code",{"type":54,"value":387},{"type":41,"tag":57,"props":405,"children":407},{"className":406},[],[408],{"type":54,"value":409},"\u002Fmcp",{"type":54,"value":411},", select ",{"type":41,"tag":57,"props":413,"children":415},{"className":414},[],[416],{"type":54,"value":417},"toolbox",{"type":54,"value":419},", and select ",{"type":41,"tag":57,"props":421,"children":423},{"className":422},[],[424],{"type":54,"value":425},"Reconnect",{"type":54,"value":427}," — or ",{"type":41,"tag":57,"props":429,"children":431},{"className":430},[],[432],{"type":54,"value":433},"\u002Fquit",{"type":54,"value":435}," and relaunch Claude Code.",{"type":41,"tag":110,"props":437,"children":438},{},[439,444,445,450,451,456,457,463],{"type":41,"tag":50,"props":440,"children":441},{},[442],{"type":54,"value":443},"Antigravity CLI",{"type":54,"value":387},{"type":41,"tag":57,"props":446,"children":448},{"className":447},[],[449],{"type":54,"value":409},{"type":54,"value":411},{"type":41,"tag":57,"props":452,"children":454},{"className":453},[],[455],{"type":54,"value":417},{"type":54,"value":419},{"type":41,"tag":57,"props":458,"children":460},{"className":459},[],[461],{"type":54,"value":462},"Restart",{"type":54,"value":205},{"type":41,"tag":110,"props":465,"children":466},{},[467],{"type":54,"value":468},"Inform them they are now ready to proceed to the next phase (e.g., the Bootstrap workflow).",{"type":41,"tag":470,"props":471,"children":472},"hr",{},[],{"type":41,"tag":68,"props":474,"children":476},{"id":475},"toolbox-config-helper",[477],{"type":54,"value":234},{"type":41,"tag":46,"props":479,"children":480},{},[481,483,488],{"type":54,"value":482},"This section contains standalone instructions for managing the ",{"type":41,"tag":57,"props":484,"children":486},{"className":485},[],[487],{"type":54,"value":132},{"type":54,"value":489}," file for the GenAI Toolbox. You can execute these if the user explicitly asks to add or list database connections.",{"type":41,"tag":75,"props":491,"children":493},{"id":492},"credentials",[494],{"type":54,"value":495},"Credentials",{"type":41,"tag":46,"props":497,"children":498},{},[499],{"type":54,"value":500},"For Google Cloud databases, the system uses Application Default Credentials (ADC) and IAM Authentication. Providing a user and password is not supported.",{"type":41,"tag":46,"props":502,"children":503},{},[504],{"type":54,"value":505},"When collecting information from the user, inform the user that only Application Default Credentials (ADC) are supported for authentication. They do not need to provide a username or password.",{"type":41,"tag":46,"props":507,"children":508},{},[509],{"type":41,"tag":50,"props":510,"children":511},{},[512],{"type":54,"value":513},"Sample Message:",{"type":41,"tag":42,"props":515,"children":516},{},[517,529,534],{"type":41,"tag":46,"props":518,"children":519},{},[520,522,527],{"type":54,"value":521},"\"I'll help you configure the database connection in ",{"type":41,"tag":57,"props":523,"children":525},{"className":524},[],[526],{"type":54,"value":132},{"type":54,"value":528},". Note that the system only supports Application Default Credentials (ADC) for authentication, so you don't need to provide a username or password. Please ensure that the IAM account you are using has the required permissions to access the database.",{"type":41,"tag":46,"props":530,"children":531},{},[532],{"type":54,"value":533},"Could you please provide the following details:",{"type":41,"tag":160,"props":535,"children":536},{},[537,542],{"type":41,"tag":110,"props":538,"children":539},{},[540],{"type":54,"value":541},"Google Cloud Project ID:",{"type":41,"tag":110,"props":543,"children":544},{},[545],{"type":54,"value":546},"Region:\n... (other required fields based on database type)\"",{"type":41,"tag":75,"props":548,"children":550},{"id":549},"primary-workflows",[551],{"type":54,"value":552},"Primary Workflows",{"type":41,"tag":554,"props":555,"children":557},"h3",{"id":556},"_1-create-a-new-toolsyaml",[558,560],{"type":54,"value":559},"1. Create a New ",{"type":41,"tag":57,"props":561,"children":563},{"className":562},[],[564],{"type":54,"value":132},{"type":41,"tag":106,"props":566,"children":567},{},[568,601,618,650],{"type":41,"tag":110,"props":569,"children":570},{},[571,576,578],{"type":41,"tag":50,"props":572,"children":573},{},[574],{"type":54,"value":575},"Identify Database Type:",{"type":54,"value":577}," Ask the user which database they want to configure:\n",{"type":41,"tag":160,"props":579,"children":580},{},[581,586,591,596],{"type":41,"tag":110,"props":582,"children":583},{},[584],{"type":54,"value":585},"Cloud SQL Postgres",{"type":41,"tag":110,"props":587,"children":588},{},[589],{"type":54,"value":590},"Cloud SQL MySQL",{"type":41,"tag":110,"props":592,"children":593},{},[594],{"type":54,"value":595},"AlloyDB Postgres",{"type":41,"tag":110,"props":597,"children":598},{},[599],{"type":54,"value":600},"Spanner",{"type":41,"tag":110,"props":602,"children":603},{},[604,609,611,616],{"type":41,"tag":50,"props":605,"children":606},{},[607],{"type":54,"value":608},"Collect Information:",{"type":54,"value":610}," Request all ",{"type":41,"tag":50,"props":612,"children":613},{},[614],{"type":54,"value":615},"Required Information",{"type":54,"value":617}," based on the templates inside this directory. Do NOT assume missing fields; ask the user for them explicitly.",{"type":41,"tag":110,"props":619,"children":620},{},[621,626,628,633,635,641,643,648],{"type":41,"tag":50,"props":622,"children":623},{},[624],{"type":54,"value":625},"Generate Configuration:",{"type":54,"value":627}," Replace all placeholders with the user's provided values and generate the complete ",{"type":41,"tag":57,"props":629,"children":631},{"className":630},[],[632],{"type":54,"value":132},{"type":54,"value":634}," content. Save it to the target location (e.g., ",{"type":41,"tag":57,"props":636,"children":638},{"className":637},[],[639],{"type":54,"value":640},"autoctx\u002Ftools.yaml",{"type":54,"value":642}," for Autoctx workflows, or ",{"type":41,"tag":57,"props":644,"children":646},{"className":645},[],[647],{"type":54,"value":132},{"type":54,"value":649}," in the current directory for standalone use).",{"type":41,"tag":110,"props":651,"children":652},{},[653,658,660,666,668],{"type":41,"tag":50,"props":654,"children":655},{},[656],{"type":54,"value":657},"Validate:",{"type":54,"value":659}," After saving, validate the new connection using the toolbox script, replacing ",{"type":41,"tag":57,"props":661,"children":663},{"className":662},[],[664],{"type":54,"value":665},"\u003Cconfig_path>",{"type":54,"value":667}," with the actual path to the file:\n",{"type":41,"tag":57,"props":669,"children":671},{"className":670},[],[672],{"type":54,"value":673},"uvx toolbox-server@1.4.0 --config \u003Cconfig_path> invoke \u003Cdata_source_name>-list-schemas",{"type":41,"tag":554,"props":675,"children":677},{"id":676},"_2-add-a-database-to-an-existing-toolsyaml",[678,680],{"type":54,"value":679},"2. Add a Database to an Existing ",{"type":41,"tag":57,"props":681,"children":683},{"className":682},[],[684],{"type":54,"value":132},{"type":41,"tag":106,"props":686,"children":687},{},[688,697,713,730,755,765],{"type":41,"tag":110,"props":689,"children":690},{},[691,695],{"type":41,"tag":50,"props":692,"children":693},{},[694],{"type":54,"value":575},{"type":54,"value":696}," Ask the user for the type of the new database connection they wish to add.",{"type":41,"tag":110,"props":698,"children":699},{},[700,704,706,712],{"type":41,"tag":50,"props":701,"children":702},{},[703],{"type":54,"value":608},{"type":54,"value":705}," Request the required information for the new connection, including a new, unique ",{"type":41,"tag":57,"props":707,"children":709},{"className":708},[],[710],{"type":54,"value":711},"\u003Cdata_source_name>",{"type":54,"value":205},{"type":41,"tag":110,"props":714,"children":715},{},[716,721,723,728],{"type":41,"tag":50,"props":717,"children":718},{},[719],{"type":54,"value":720},"Read Existing File:",{"type":54,"value":722}," Read the content of the existing ",{"type":41,"tag":57,"props":724,"children":726},{"className":725},[],[727],{"type":54,"value":132},{"type":54,"value":729}," from the target location.",{"type":41,"tag":110,"props":731,"children":732},{},[733,738,740,746,747,753],{"type":41,"tag":50,"props":734,"children":735},{},[736],{"type":54,"value":737},"Generate and Append:",{"type":54,"value":739}," Generate the YAML snippets for the new ",{"type":41,"tag":57,"props":741,"children":743},{"className":742},[],[744],{"type":54,"value":745},"sources",{"type":54,"value":186},{"type":41,"tag":57,"props":748,"children":750},{"className":749},[],[751],{"type":54,"value":752},"tools",{"type":54,"value":754}," sections. Append these new entries to the respective sections in the existing file content.",{"type":41,"tag":110,"props":756,"children":757},{},[758,763],{"type":41,"tag":50,"props":759,"children":760},{},[761],{"type":54,"value":762},"Save Configuration:",{"type":54,"value":764}," Save the updated content back to the file.",{"type":41,"tag":110,"props":766,"children":767},{},[768,772,774,779,780],{"type":41,"tag":50,"props":769,"children":770},{},[771],{"type":54,"value":657},{"type":54,"value":773}," Validate only the newly added connection, replacing ",{"type":41,"tag":57,"props":775,"children":777},{"className":776},[],[778],{"type":54,"value":665},{"type":54,"value":667},{"type":41,"tag":57,"props":781,"children":783},{"className":782},[],[784],{"type":54,"value":673},{"type":41,"tag":554,"props":786,"children":788},{"id":787},"_3-list-existing-database-connections",[789],{"type":54,"value":790},"3. List Existing Database Connections",{"type":41,"tag":106,"props":792,"children":793},{},[794,818],{"type":41,"tag":110,"props":795,"children":796},{},[797,809,811,816],{"type":41,"tag":50,"props":798,"children":799},{},[800,802,807],{"type":54,"value":801},"Check and Read ",{"type":41,"tag":57,"props":803,"children":805},{"className":804},[],[806],{"type":54,"value":132},{"type":54,"value":808},":",{"type":54,"value":810}," Check for the ",{"type":41,"tag":57,"props":812,"children":814},{"className":813},[],[815],{"type":54,"value":132},{"type":54,"value":817}," file. If it doesn't exist, inform the user.",{"type":41,"tag":110,"props":819,"children":820},{},[821,826,828,834],{"type":41,"tag":50,"props":822,"children":823},{},[824],{"type":54,"value":825},"Parse and List:",{"type":54,"value":827}," Parse the YAML content and list the names of all configured data sources found under the ",{"type":41,"tag":57,"props":829,"children":831},{"className":830},[],[832],{"type":54,"value":833},"sources:",{"type":54,"value":835}," key limit.",{"type":41,"tag":75,"props":837,"children":839},{"id":838},"validation",[840],{"type":54,"value":841},"Validation",{"type":41,"tag":46,"props":843,"children":844},{},[845,847],{"type":54,"value":846},"To verify that a specific database connection is configured correctly at any time, run the validation script with the target data source name:\n",{"type":41,"tag":57,"props":848,"children":850},{"className":849},[],[851],{"type":54,"value":852},"uvx toolbox-server@1.4.0 --config tools.yaml invoke \u003Cdata_source_name>-list-schemas",{"type":41,"tag":75,"props":854,"children":856},{"id":855},"templates-reference",[857],{"type":54,"value":858},"Templates & Reference",{"type":41,"tag":46,"props":860,"children":861},{},[862],{"type":54,"value":863},"For the specific fields required for each database type and the exact YAML structure to use, refer to the templates in this directory (...\u002Freferences\u002Finit\u002F...).",{"items":865,"total":1050},[866,884,900,920,934,945,959,976,993,1006,1022,1032],{"slug":867,"name":867,"fn":868,"description":869,"org":870,"tags":871,"stars":881,"repoUrl":882,"updatedAt":883},"kb-search","search and extract local knowledge base documents","Allows listing, searching and extracting information from local knowledge base documents for information about tables\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[872,875,878],{"name":873,"slug":874,"type":16},"Documentation","documentation",{"name":876,"slug":877,"type":16},"Knowledge Base","knowledge-base",{"name":879,"slug":880,"type":16},"Search","search",6749,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fknowledge-catalog","2026-07-12T07:38:52.157375",{"slug":885,"name":886,"fn":887,"description":888,"org":889,"tags":890,"stars":881,"repoUrl":882,"updatedAt":899},"knowledgecatalogdiscoveryagent","knowledge_catalog_discovery_agent","search and rank Knowledge Catalog data entries","Analyzes user queries, extracts relevant predicates, and utilizes Knowledge Catalog Search to find and rank the most relevant data entries. Engages with the user throughout the process.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[891,894,895,898],{"name":892,"slug":893,"type":16},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":16},{"name":896,"slug":897,"type":16},"Knowledge Management","knowledge-management",{"name":879,"slug":880,"type":16},"2026-07-12T07:38:22.196851",{"slug":901,"name":901,"fn":902,"description":903,"org":904,"tags":905,"stars":917,"repoUrl":918,"updatedAt":919},"contributing","contribute to Cloud Foundation Fabric","End-to-end workflow for contributing to Cloud Foundation Fabric: triaging GitHub issues, proactive feature development, validating with tests and Policy Troubleshooter, and submitting sanitized Pull Requests. Use when addressing a Fabric GitHub issue, developing a module or FAST stage change, or preparing a branch for a pull request.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[906,909,910,913,914],{"name":907,"slug":908,"type":16},"Automation","automation",{"name":21,"slug":22,"type":16},{"name":911,"slug":912,"type":16},"GitHub","github",{"name":9,"slug":8,"type":16},{"name":915,"slug":916,"type":16},"Pull Requests","pull-requests",2062,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric","2026-07-31T06:23:36.935005",{"slug":921,"name":921,"fn":922,"description":923,"org":924,"tags":925,"stars":917,"repoUrl":918,"updatedAt":933},"fabric-builder","generate Terraform code for Google Cloud","Generates idiomatic Cloud Foundation Fabric (CFF) Terraform code using CFF modules. Use when users ask to create GCP resources, use Fabric modules, or generate Terraform code for Google Cloud.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[926,927,930],{"name":9,"slug":8,"type":16},{"name":928,"slug":929,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":931,"slug":932,"type":16},"Terraform","terraform","2026-07-12T07:38:23.514555",{"slug":935,"name":935,"fn":936,"description":937,"org":938,"tags":939,"stars":917,"repoUrl":918,"updatedAt":944},"fast-0-org-setup-prereqs","prepare prerequisites for FAST 0-org-setup","Guides the user step-by-step through the prerequisites for the FAST 0-org-setup stage, supporting both Standard GCP and Google Cloud Dedicated (GCD) environments. Use when a user asks to prepare or run prerequisites for 0-org-setup or bootstrap the FAST landing zone.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[940,941],{"name":9,"slug":8,"type":16},{"name":942,"slug":943,"type":16},"Operations","operations","2026-07-12T07:38:28.127148",{"slug":946,"name":946,"fn":947,"description":948,"org":949,"tags":950,"stars":956,"repoUrl":957,"updatedAt":958},"agent-aware-cli","design agent-aware command-line interfaces","Guide for designing and implementing command-line interfaces (CLIs) that are equally usable by human developers and automated coding agents. Use when the user wants to build a CLI, apply CLI best practices, or use Go with Cobra and Viper.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[951,954,955],{"name":952,"slug":953,"type":16},"CLI","cli",{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},1150,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fvertex-ai-creative-studio","2026-07-12T07:39:08.41406",{"slug":960,"name":960,"fn":961,"description":962,"org":963,"tags":964,"stars":956,"repoUrl":957,"updatedAt":975},"build-mcp-genmedia","build and configure GenAI MCP servers","Builds the mcp-genmedia Go MCP servers (nanobanana, veo, lyria, gemini-multimodal, chirp3-hd, avtool) from source and wires them into settings.json. Use this skill whenever the MCP tools are missing or broken — typically at the start of a new session, after a container restart, or when \u002Ftmp has been wiped. The prebuilt binaries in \u002Fworkspace\u002F.local\u002Fbin\u002F have no exec bit and live on a noexec mount; this skill compiles fresh executables into \u002Ftmp\u002Fbin\u002F where execution is allowed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[965,968,969,972],{"name":966,"slug":967,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":970,"slug":971,"type":16},"LLM","llm",{"name":973,"slug":974,"type":16},"MCP","mcp","2026-07-12T07:39:10.911302",{"slug":977,"name":977,"fn":978,"description":979,"org":980,"tags":981,"stars":956,"repoUrl":957,"updatedAt":992},"genmedia-audio-engineer","synthesize and mix audio content","Expert in audio synthesis, music generation, and mixing. Use when creating podcasts, background scores, or multi-track audio layering using mcp-chirp3-go, mcp-lyria-go, mcp-gemini-go, mcp-nanobanana-go, and mcp-avtool-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[982,985,988,989],{"name":983,"slug":984,"type":16},"Audio","audio",{"name":986,"slug":987,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},{"name":990,"slug":991,"type":16},"Vertex AI","vertex-ai","2026-07-12T07:39:16.623879",{"slug":994,"name":994,"fn":995,"description":996,"org":997,"tags":998,"stars":956,"repoUrl":957,"updatedAt":1005},"genmedia-image-artist","generate and edit AI images","Expert in AI image generation and editing. Use when the user needs high-quality textures, character-consistent visuals, or image-to-image editing using mcp-nanobanana-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[999,1000,1001,1004],{"name":986,"slug":987,"type":16},{"name":9,"slug":8,"type":16},{"name":1002,"slug":1003,"type":16},"Image Generation","image-generation",{"name":990,"slug":991,"type":16},"2026-07-12T07:39:15.372822",{"slug":1007,"name":1007,"fn":1008,"description":1009,"org":1010,"tags":1011,"stars":956,"repoUrl":957,"updatedAt":1021},"genmedia-producer","produce multi-step media content","Expert media production assistant. Use when requested to help with storyboarding, podcast creation, audio assembly, or complex multi-step media workflows using the GenMedia MCP servers (Veo, Lyria, Gemini TTS, NanoBanana).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1012,1013,1014,1015,1018],{"name":983,"slug":984,"type":16},{"name":986,"slug":987,"type":16},{"name":9,"slug":8,"type":16},{"name":1016,"slug":1017,"type":16},"Media","media",{"name":1019,"slug":1020,"type":16},"Video","video","2026-07-12T07:39:09.672849",{"slug":1023,"name":1023,"fn":1024,"description":1025,"org":1026,"tags":1027,"stars":956,"repoUrl":957,"updatedAt":1031},"genmedia-video-editor","edit and compose video content","Expert in video composition, editing, and format conversion. Use when the user wants to generate high-quality video, overlay images on video, concatenate clips, create GIFs, or sync audio to video using mcp-avtool-go and mcp-veo-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1028,1029,1030],{"name":986,"slug":987,"type":16},{"name":9,"slug":8,"type":16},{"name":1019,"slug":1020,"type":16},"2026-07-12T07:39:13.749081",{"slug":1033,"name":1033,"fn":1034,"description":1035,"org":1036,"tags":1037,"stars":956,"repoUrl":957,"updatedAt":1049},"genmedia-voice-director","generate expressive text-to-speech with Gemini","Expert in casting, directing, and generating expressive text-to-speech using Gemini TTS. Use this when the user needs virtual voice actor personas, expressive speech generation, or multiple variations of a voiceover (like \"take 3 on the bounce\").",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1038,1039,1040,1043,1046],{"name":983,"slug":984,"type":16},{"name":986,"slug":987,"type":16},{"name":1041,"slug":1042,"type":16},"Gemini","gemini",{"name":1044,"slug":1045,"type":16},"Speech","speech",{"name":1047,"slug":1048,"type":16},"Text-to-Speech","text-to-speech","2026-07-12T07:39:17.86673",80,{"items":1052,"total":1137},[1053,1068,1083,1094,1107,1114,1126],{"slug":1054,"name":1054,"fn":1055,"description":1056,"org":1057,"tags":1058,"stars":24,"repoUrl":25,"updatedAt":1067},"context-engineering-bootstrap","bootstrap initial ContextSet for database enrichment","Guides the agent to bootstrap an initial ContextSet (templates, facets, and value searches) by deducing key information from the database schema and generating a ContextSet file.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1059,1062,1065,1066],{"name":1060,"slug":1061,"type":16},"Context","context",{"name":1063,"slug":1064,"type":16},"Data Modeling","data-modeling",{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},"2026-07-18T05:47:56.797107",{"slug":1069,"name":1069,"fn":1070,"description":1071,"org":1072,"tags":1073,"stars":24,"repoUrl":25,"updatedAt":1082},"context-engineering-dataset-generation","generate golden SQL evaluation datasets","Generate or expand a golden evaluation dataset of SQL\u002FQuestion (NLQ+SQL) pairs for evaluating NL-to-SQL translation accuracy on a target database.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1074,1075,1078,1079],{"name":892,"slug":893,"type":16},{"name":1076,"slug":1077,"type":16},"Evals","evals",{"name":9,"slug":8,"type":16},{"name":1080,"slug":1081,"type":16},"SQL","sql","2026-07-18T05:47:55.878915",{"slug":1084,"name":1084,"fn":1085,"description":1086,"org":1087,"tags":1088,"stars":24,"repoUrl":25,"updatedAt":1093},"context-engineering-evaluate","evaluate ContextSet against golden datasets","Guides the agent to execute an evaluation of a ContextSet against a golden NLQ+SQL dataset using the Evalbench framework.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1089,1090,1091,1092],{"name":892,"slug":893,"type":16},{"name":1076,"slug":1077,"type":16},{"name":9,"slug":8,"type":16},{"name":1080,"slug":1081,"type":16},"2026-07-18T05:47:52.594607",{"slug":1095,"name":1095,"fn":1096,"description":1097,"org":1098,"tags":1099,"stars":24,"repoUrl":25,"updatedAt":1106},"context-engineering-hillclimb","improve ContextSet via hill-climbing iterations","Guides the agent to perform hill-climbing iterations to improve a ContextSet based on Evalbench evaluation results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1100,1101,1102,1103],{"name":892,"slug":893,"type":16},{"name":1076,"slug":1077,"type":16},{"name":9,"slug":8,"type":16},{"name":1104,"slug":1105,"type":16},"Optimization","optimization","2026-07-18T05:47:54.951176",{"slug":4,"name":4,"fn":5,"description":6,"org":1108,"tags":1109,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1110,1111,1112,1113],{"name":14,"slug":15,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":9,"slug":8,"type":16},{"slug":62,"name":62,"fn":1115,"description":1116,"org":1117,"tags":1118,"stars":24,"repoUrl":25,"updatedAt":1125},"optimize context sets for Gemini data agents","Context engineering for Gemini Data Analytics API's data agent developer platform tools. Generates, evaluates, and iteratively optimizes a ContextSet (Templates, Facets, Value Searches) to maximize Natural-Language-to-SQL translation accuracy. Use this skill to run the automated setup, NL-SQL pair evaluation dataset generation and expansion, bootstrapping, scoring, and optimization pipeline. For manual authoring standards and schema syntax rules, see the context-generation-guide skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1119,1122,1123,1124],{"name":1120,"slug":1121,"type":16},"Agent Context","agent-context",{"name":892,"slug":893,"type":16},{"name":1041,"slug":1042,"type":16},{"name":9,"slug":8,"type":16},"2026-07-18T05:13:44.430929",{"slug":1127,"name":1127,"fn":1128,"description":1129,"org":1130,"tags":1131,"stars":24,"repoUrl":25,"updatedAt":1136},"context-generation-guide","generate context items for database enrichment","Guidelines and best practices for generating context items (Templates, Facets, Value Searches). Use this skill whenever the user asks to create, author, or generate context for database enrichment, or asks for examples and instructions on how to write templates, facets, or value searches. It helps bridge the gap between LLMs and structured databases. For running the automated generation, evaluation, and tuning lifecycle, see the context-engineering-workflow skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1132,1133,1134,1135],{"name":1120,"slug":1121,"type":16},{"name":18,"slug":19,"type":16},{"name":873,"slug":874,"type":16},{"name":9,"slug":8,"type":16},"2026-07-18T05:13:43.403052",7]