[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-cloud-fast-0-org-setup-prereqs":3,"mdc--nq3zdc-key":31,"related-org-google-cloud-fast-0-org-setup-prereqs":623,"related-repo-google-cloud-fast-0-org-setup-prereqs":803},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":18,"repoUrl":19,"updatedAt":20,"license":21,"forks":22,"topics":23,"repo":26,"sourceUrl":29,"mdContent":30},"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},"google-cloud","Google Cloud","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-cloud.png","GoogleCloudPlatform",[13,17],{"name":14,"slug":15,"type":16},"Operations","operations","tag",{"name":9,"slug":8,"type":16},2062,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric","2026-07-12T07:38:28.127148",null,1242,[24,8,25],"gcp","terraform",{"repoUrl":19,"stars":18,"forks":22,"topics":27,"description":28},[24,8,25],"End-to-end modular samples and landing zones toolkit for Terraform on GCP.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric\u002Ftree\u002FHEAD\u002Fskills\u002Ffast\u002Fprerequisites","---\nname: fast-0-org-setup-prereqs\ndescription: 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.\n---\n\n# FAST 0-org-setup Prerequisites Guide\n\n## Core Principles & Execution Rules\n\n> [!CRITICAL]\n> **MANDATORY PROGRESS BLOCK (HUMAN VISIBILITY):** \n> To ensure the human user always knows where they are in the workflow and can immediately spot if you skip steps or make false assumptions, **EVERY SINGLE response you output MUST start with this progress block**. Do not omit it, do not shorten it, and do not skip step sequences.\n>\n> Format to prepend to EVERY message:\n> ```text\n> FAST Prerequisites Progress:\n> - Phase 1: Environment & Authentication\n>   (Step 1\u002F2: Target Environment Selection - IN PROGRESS)\n> - Phase 2: Admin Principal & Baseline Info\n>   (Not started)\n> - Phase 3: Bootstrap Project & IAM\n>   (Not started)\n> - Phase 4: Configuration & Wrap-up\n>   (Not started)\n> ```\n>\n> As steps are completed, update the bracketed lines to show completed steps or current active step, e.g.:\n> ```text\n> FAST Prerequisites Progress:\n> - Phase 1: Environment & Authentication\n>   (2\u002F2 steps completed)\n> - Phase 2: Admin Principal & Baseline Info\n>   (Step 1\u002F2: Admin Principal Definition - IN PROGRESS)\n> - Phase 3: Bootstrap Project & IAM\n>   (Not started)\n> - Phase 4: Configuration & Wrap-up\n>   (Not started)\n> ```\n\n> [!CRITICAL]\n> **Understanding Turn Boundaries:** You are running in a turn-based execution environment. \n> - You receive one user message, then you can think and run tools.\n> - Once you decide you need input from the user (e.g. to choose an environment or confirm a principal), you MUST output your question in a text response and **STOP execution immediately (do not call more tools)**. \n> - You **CANNOT** receive the user's answer in the same turn. \n> - You **MUST NOT** simulate, guess, or assume the user's response in your subsequent thinking blocks during the same turn. You must wait for the next turn to receive the actual input.\n>\n> **Do NOT Skip Steps or Make Assumptions:** You MUST NOT skip any phases or steps, even if you think they are redundant or if you find information on the system (like active credentials) that suggests a step is already complete. You MUST execute every step sequentially, in order, and wait for explicit user input\u002Fconfirmation at each step boundary.\n>\n> **MANDATORY START POINT (TURN 1):** You MUST explicitly ask the user to choose their target environment (Standard GCP or GCD) in your first turn. Do NOT check active credentials or run background commands to bypass this step. The environment selection is a fundamental gateway that dictates all downstream resources, variables, and configurations. Proceeding without explicitly getting this choice in Turn 1 is a critical failure.\n>\n> **Strictly One Question at a Time:** You MUST NOT bundle multiple questions or steps together in a single response. Ask exactly one question, wait for the user's answer, and only then proceed to the next question or action.\n>\n> **Sandbox Awareness:** You are running inside an isolated, sandboxed temporary workspace (e.g., `\u002Ftmp\u002Fgemini_harness_*`). Whenever creating local files, configuration directories (like `custom-fast-config` or `fast-config`), or checking defaults, you MUST do so strictly relative to your current workspace directory (CWD). NEVER try to directly read or write to `\u002Fhome\u002Fludomagno\u002F` or other external folders, as your file tools are sandboxed and will fail with permission errors.\n>\n> **Step-by-Step Execution:** Never implement a single \"magical\" flow. Go through each step one at a time, explaining context and asking for confirmation.\n3. **Execution Choice:** Respect the user's execution preference (automatic via `run_shell_command` vs. manual copy\u002Fpaste) throughout the entire workflow unless the user explicitly instructs you to change it. This preference will be gathered during Phase 1.\n4. **File Modifications:** Always use `replace` or `write_file`. **Never** use opaque shell commands (like `sed`, `echo >>`, or `cat \u003C\u003CEOF >>`). Show proposed edits and ask for confirmation before applying them so the user can see what we're doing.\n5. **YAML Validation:** Validate generated YAML using `yamllint -c .yamllint --no-warnings \u003Cfile>`. If the command is not available, ask the user if they prefer to a) install it, b) have you install it (`pip install yamllint`), or c) skip validation.\n6. **Resuming Mid-Flow:** If the user is resuming a previously interrupted session, ask them which Phase or Step they left off at, or assess the current state by reading previously generated files (e.g., `defaults.yaml`, `0-org-setup.auto.tfvars`). Read the corresponding reference file for the identified phase and resume execution directly from that point.\n\n## Workflow Map\n\nGuide the user through the following sequence strictly in order. **Before starting a phase, read its corresponding reference document to get the exact instructions, commands, and logic.**\n\n### Phase 1: Environment & Authentication\n*Description:* Determine the target environment (Standard GCP or GCD) and ensure the user is properly authenticated.\\\n*Reference: [Environment & Authentication](references\u002Fphase1-env-and-auth.md)*\n- **Step 1:** Environment Assessment & Initialization (Standard vs GCD)\n- **Step 2:** Authentication\n\n### Phase 2: Admin Principal & Baseline Info\n*Description:* Define the core administrative identity and gather essential baseline data like Organization and Billing IDs.\\\n*Reference: [Admin Principal & Baseline Info](references\u002Fphase2-admin-and-baseline.md)*\n- **Step 3:** Admin Principal Definition (Group vs Single User)\n- **Step 4:** Baseline Information Gathering (Org ID, Billing ID, Billing Access Scenarios)\n\n### Phase 3: Bootstrap Project & IAM\n*Description:* Assign the necessary organization-level IAM roles and set up a temporary project for API quota tracking.\\\n*Reference: [Bootstrap Project & IAM](references\u002Fphase3-bootstrap-and-iam.md)*\n- **Step 5:** IAM Role Assignments\n- **Step 6:** Bootstrap Project Setup (Creation and API enablement)\n\n### Phase 4: Configuration & Wrap-up\n*Description:* Generate the FAST dataset configuration, handle existing organization policies, and prepare for the final Terraform apply.\\\n*Reference: [Configuration & Wrap-up](references\u002Fphase4-config-and-wrapup.md)*\n- **Step 7:** Configuration Generation (Datasets, defaults.yaml, local paths)\n- **Step 8:** Organization Policy Import Check\n- **Step 9:** Wrap-up & Apply\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,45,52,113,257,387,393,403,410,437,460,466,488,511,517,539,562,568,590],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"fast-0-org-setup-prerequisites-guide",[42],{"type":43,"value":44},"text","FAST 0-org-setup Prerequisites Guide",{"type":37,"tag":46,"props":47,"children":49},"h2",{"id":48},"core-principles-execution-rules",[50],{"type":43,"value":51},"Core Principles & Execution Rules",{"type":37,"tag":53,"props":54,"children":55},"blockquote",{},[56,81,86,99,104],{"type":37,"tag":57,"props":58,"children":59},"p",{},[60,66,72,74,79],{"type":37,"tag":61,"props":62,"children":63},"span",{},[64],{"type":43,"value":65},"!CRITICAL",{"type":37,"tag":67,"props":68,"children":69},"strong",{},[70],{"type":43,"value":71},"MANDATORY PROGRESS BLOCK (HUMAN VISIBILITY):",{"type":43,"value":73},"\nTo ensure the human user always knows where they are in the workflow and can immediately spot if you skip steps or make false assumptions, ",{"type":37,"tag":67,"props":75,"children":76},{},[77],{"type":43,"value":78},"EVERY SINGLE response you output MUST start with this progress block",{"type":43,"value":80},". Do not omit it, do not shorten it, and do not skip step sequences.",{"type":37,"tag":57,"props":82,"children":83},{},[84],{"type":43,"value":85},"Format to prepend to EVERY message:",{"type":37,"tag":87,"props":88,"children":93},"pre",{"className":89,"code":91,"language":43,"meta":92},[90],"language-text","FAST Prerequisites Progress:\n- Phase 1: Environment & Authentication\n  (Step 1\u002F2: Target Environment Selection - IN PROGRESS)\n- Phase 2: Admin Principal & Baseline Info\n  (Not started)\n- Phase 3: Bootstrap Project & IAM\n  (Not started)\n- Phase 4: Configuration & Wrap-up\n  (Not started)\n","",[94],{"type":37,"tag":95,"props":96,"children":97},"code",{"__ignoreMap":92},[98],{"type":43,"value":91},{"type":37,"tag":57,"props":100,"children":101},{},[102],{"type":43,"value":103},"As steps are completed, update the bracketed lines to show completed steps or current active step, e.g.:",{"type":37,"tag":87,"props":105,"children":108},{"className":106,"code":107,"language":43,"meta":92},[90],"FAST Prerequisites Progress:\n- Phase 1: Environment & Authentication\n  (2\u002F2 steps completed)\n- Phase 2: Admin Principal & Baseline Info\n  (Step 1\u002F2: Admin Principal Definition - IN PROGRESS)\n- Phase 3: Bootstrap Project & IAM\n  (Not started)\n- Phase 4: Configuration & Wrap-up\n  (Not started)\n",[109],{"type":37,"tag":95,"props":110,"children":111},{"__ignoreMap":92},[112],{"type":43,"value":107},{"type":37,"tag":53,"props":114,"children":115},{},[116,130,175,185,195,205,247],{"type":37,"tag":57,"props":117,"children":118},{},[119,123,128],{"type":37,"tag":61,"props":120,"children":121},{},[122],{"type":43,"value":65},{"type":37,"tag":67,"props":124,"children":125},{},[126],{"type":43,"value":127},"Understanding Turn Boundaries:",{"type":43,"value":129}," You are running in a turn-based execution environment.",{"type":37,"tag":131,"props":132,"children":133},"ul",{},[134,140,152,164],{"type":37,"tag":135,"props":136,"children":137},"li",{},[138],{"type":43,"value":139},"You receive one user message, then you can think and run tools.",{"type":37,"tag":135,"props":141,"children":142},{},[143,145,150],{"type":43,"value":144},"Once you decide you need input from the user (e.g. to choose an environment or confirm a principal), you MUST output your question in a text response and ",{"type":37,"tag":67,"props":146,"children":147},{},[148],{"type":43,"value":149},"STOP execution immediately (do not call more tools)",{"type":43,"value":151},".",{"type":37,"tag":135,"props":153,"children":154},{},[155,157,162],{"type":43,"value":156},"You ",{"type":37,"tag":67,"props":158,"children":159},{},[160],{"type":43,"value":161},"CANNOT",{"type":43,"value":163}," receive the user's answer in the same turn.",{"type":37,"tag":135,"props":165,"children":166},{},[167,168,173],{"type":43,"value":156},{"type":37,"tag":67,"props":169,"children":170},{},[171],{"type":43,"value":172},"MUST NOT",{"type":43,"value":174}," simulate, guess, or assume the user's response in your subsequent thinking blocks during the same turn. You must wait for the next turn to receive the actual input.",{"type":37,"tag":57,"props":176,"children":177},{},[178,183],{"type":37,"tag":67,"props":179,"children":180},{},[181],{"type":43,"value":182},"Do NOT Skip Steps or Make Assumptions:",{"type":43,"value":184}," You MUST NOT skip any phases or steps, even if you think they are redundant or if you find information on the system (like active credentials) that suggests a step is already complete. You MUST execute every step sequentially, in order, and wait for explicit user input\u002Fconfirmation at each step boundary.",{"type":37,"tag":57,"props":186,"children":187},{},[188,193],{"type":37,"tag":67,"props":189,"children":190},{},[191],{"type":43,"value":192},"MANDATORY START POINT (TURN 1):",{"type":43,"value":194}," You MUST explicitly ask the user to choose their target environment (Standard GCP or GCD) in your first turn. Do NOT check active credentials or run background commands to bypass this step. The environment selection is a fundamental gateway that dictates all downstream resources, variables, and configurations. Proceeding without explicitly getting this choice in Turn 1 is a critical failure.",{"type":37,"tag":57,"props":196,"children":197},{},[198,203],{"type":37,"tag":67,"props":199,"children":200},{},[201],{"type":43,"value":202},"Strictly One Question at a Time:",{"type":43,"value":204}," You MUST NOT bundle multiple questions or steps together in a single response. Ask exactly one question, wait for the user's answer, and only then proceed to the next question or action.",{"type":37,"tag":57,"props":206,"children":207},{},[208,213,215,221,223,229,231,237,239,245],{"type":37,"tag":67,"props":209,"children":210},{},[211],{"type":43,"value":212},"Sandbox Awareness:",{"type":43,"value":214}," You are running inside an isolated, sandboxed temporary workspace (e.g., ",{"type":37,"tag":95,"props":216,"children":218},{"className":217},[],[219],{"type":43,"value":220},"\u002Ftmp\u002Fgemini_harness_*",{"type":43,"value":222},"). Whenever creating local files, configuration directories (like ",{"type":37,"tag":95,"props":224,"children":226},{"className":225},[],[227],{"type":43,"value":228},"custom-fast-config",{"type":43,"value":230}," or ",{"type":37,"tag":95,"props":232,"children":234},{"className":233},[],[235],{"type":43,"value":236},"fast-config",{"type":43,"value":238},"), or checking defaults, you MUST do so strictly relative to your current workspace directory (CWD). NEVER try to directly read or write to ",{"type":37,"tag":95,"props":240,"children":242},{"className":241},[],[243],{"type":43,"value":244},"\u002Fhome\u002Fludomagno\u002F",{"type":43,"value":246}," or other external folders, as your file tools are sandboxed and will fail with permission errors.",{"type":37,"tag":57,"props":248,"children":249},{},[250,255],{"type":37,"tag":67,"props":251,"children":252},{},[253],{"type":43,"value":254},"Step-by-Step Execution:",{"type":43,"value":256}," Never implement a single \"magical\" flow. Go through each step one at a time, explaining context and asking for confirmation.",{"type":37,"tag":258,"props":259,"children":261},"ol",{"start":260},3,[262,280,336,362],{"type":37,"tag":135,"props":263,"children":264},{},[265,270,272,278],{"type":37,"tag":67,"props":266,"children":267},{},[268],{"type":43,"value":269},"Execution Choice:",{"type":43,"value":271}," Respect the user's execution preference (automatic via ",{"type":37,"tag":95,"props":273,"children":275},{"className":274},[],[276],{"type":43,"value":277},"run_shell_command",{"type":43,"value":279}," vs. manual copy\u002Fpaste) throughout the entire workflow unless the user explicitly instructs you to change it. This preference will be gathered during Phase 1.",{"type":37,"tag":135,"props":281,"children":282},{},[283,288,290,296,297,303,305,310,312,318,320,326,328,334],{"type":37,"tag":67,"props":284,"children":285},{},[286],{"type":43,"value":287},"File Modifications:",{"type":43,"value":289}," Always use ",{"type":37,"tag":95,"props":291,"children":293},{"className":292},[],[294],{"type":43,"value":295},"replace",{"type":43,"value":230},{"type":37,"tag":95,"props":298,"children":300},{"className":299},[],[301],{"type":43,"value":302},"write_file",{"type":43,"value":304},". ",{"type":37,"tag":67,"props":306,"children":307},{},[308],{"type":43,"value":309},"Never",{"type":43,"value":311}," use opaque shell commands (like ",{"type":37,"tag":95,"props":313,"children":315},{"className":314},[],[316],{"type":43,"value":317},"sed",{"type":43,"value":319},", ",{"type":37,"tag":95,"props":321,"children":323},{"className":322},[],[324],{"type":43,"value":325},"echo >>",{"type":43,"value":327},", or ",{"type":37,"tag":95,"props":329,"children":331},{"className":330},[],[332],{"type":43,"value":333},"cat \u003C\u003CEOF >>",{"type":43,"value":335},"). Show proposed edits and ask for confirmation before applying them so the user can see what we're doing.",{"type":37,"tag":135,"props":337,"children":338},{},[339,344,346,352,354,360],{"type":37,"tag":67,"props":340,"children":341},{},[342],{"type":43,"value":343},"YAML Validation:",{"type":43,"value":345}," Validate generated YAML using ",{"type":37,"tag":95,"props":347,"children":349},{"className":348},[],[350],{"type":43,"value":351},"yamllint -c .yamllint --no-warnings \u003Cfile>",{"type":43,"value":353},". If the command is not available, ask the user if they prefer to a) install it, b) have you install it (",{"type":37,"tag":95,"props":355,"children":357},{"className":356},[],[358],{"type":43,"value":359},"pip install yamllint",{"type":43,"value":361},"), or c) skip validation.",{"type":37,"tag":135,"props":363,"children":364},{},[365,370,372,378,379,385],{"type":37,"tag":67,"props":366,"children":367},{},[368],{"type":43,"value":369},"Resuming Mid-Flow:",{"type":43,"value":371}," If the user is resuming a previously interrupted session, ask them which Phase or Step they left off at, or assess the current state by reading previously generated files (e.g., ",{"type":37,"tag":95,"props":373,"children":375},{"className":374},[],[376],{"type":43,"value":377},"defaults.yaml",{"type":43,"value":319},{"type":37,"tag":95,"props":380,"children":382},{"className":381},[],[383],{"type":43,"value":384},"0-org-setup.auto.tfvars",{"type":43,"value":386},"). Read the corresponding reference file for the identified phase and resume execution directly from that point.",{"type":37,"tag":46,"props":388,"children":390},{"id":389},"workflow-map",[391],{"type":43,"value":392},"Workflow Map",{"type":37,"tag":57,"props":394,"children":395},{},[396,398],{"type":43,"value":397},"Guide the user through the following sequence strictly in order. ",{"type":37,"tag":67,"props":399,"children":400},{},[401],{"type":43,"value":402},"Before starting a phase, read its corresponding reference document to get the exact instructions, commands, and logic.",{"type":37,"tag":404,"props":405,"children":407},"h3",{"id":406},"phase-1-environment-authentication",[408],{"type":43,"value":409},"Phase 1: Environment & Authentication",{"type":37,"tag":57,"props":411,"children":412},{},[413,419,421,425],{"type":37,"tag":414,"props":415,"children":416},"em",{},[417],{"type":43,"value":418},"Description:",{"type":43,"value":420}," Determine the target environment (Standard GCP or GCD) and ensure the user is properly authenticated.",{"type":37,"tag":422,"props":423,"children":424},"br",{},[],{"type":37,"tag":414,"props":426,"children":427},{},[428,430],{"type":43,"value":429},"Reference: ",{"type":37,"tag":431,"props":432,"children":434},"a",{"href":433},"references\u002Fphase1-env-and-auth.md",[435],{"type":43,"value":436},"Environment & Authentication",{"type":37,"tag":131,"props":438,"children":439},{},[440,450],{"type":37,"tag":135,"props":441,"children":442},{},[443,448],{"type":37,"tag":67,"props":444,"children":445},{},[446],{"type":43,"value":447},"Step 1:",{"type":43,"value":449}," Environment Assessment & Initialization (Standard vs GCD)",{"type":37,"tag":135,"props":451,"children":452},{},[453,458],{"type":37,"tag":67,"props":454,"children":455},{},[456],{"type":43,"value":457},"Step 2:",{"type":43,"value":459}," Authentication",{"type":37,"tag":404,"props":461,"children":463},{"id":462},"phase-2-admin-principal-baseline-info",[464],{"type":43,"value":465},"Phase 2: Admin Principal & Baseline Info",{"type":37,"tag":57,"props":467,"children":468},{},[469,473,475,478],{"type":37,"tag":414,"props":470,"children":471},{},[472],{"type":43,"value":418},{"type":43,"value":474}," Define the core administrative identity and gather essential baseline data like Organization and Billing IDs.",{"type":37,"tag":422,"props":476,"children":477},{},[],{"type":37,"tag":414,"props":479,"children":480},{},[481,482],{"type":43,"value":429},{"type":37,"tag":431,"props":483,"children":485},{"href":484},"references\u002Fphase2-admin-and-baseline.md",[486],{"type":43,"value":487},"Admin Principal & Baseline Info",{"type":37,"tag":131,"props":489,"children":490},{},[491,501],{"type":37,"tag":135,"props":492,"children":493},{},[494,499],{"type":37,"tag":67,"props":495,"children":496},{},[497],{"type":43,"value":498},"Step 3:",{"type":43,"value":500}," Admin Principal Definition (Group vs Single User)",{"type":37,"tag":135,"props":502,"children":503},{},[504,509],{"type":37,"tag":67,"props":505,"children":506},{},[507],{"type":43,"value":508},"Step 4:",{"type":43,"value":510}," Baseline Information Gathering (Org ID, Billing ID, Billing Access Scenarios)",{"type":37,"tag":404,"props":512,"children":514},{"id":513},"phase-3-bootstrap-project-iam",[515],{"type":43,"value":516},"Phase 3: Bootstrap Project & IAM",{"type":37,"tag":57,"props":518,"children":519},{},[520,524,526,529],{"type":37,"tag":414,"props":521,"children":522},{},[523],{"type":43,"value":418},{"type":43,"value":525}," Assign the necessary organization-level IAM roles and set up a temporary project for API quota tracking.",{"type":37,"tag":422,"props":527,"children":528},{},[],{"type":37,"tag":414,"props":530,"children":531},{},[532,533],{"type":43,"value":429},{"type":37,"tag":431,"props":534,"children":536},{"href":535},"references\u002Fphase3-bootstrap-and-iam.md",[537],{"type":43,"value":538},"Bootstrap Project & IAM",{"type":37,"tag":131,"props":540,"children":541},{},[542,552],{"type":37,"tag":135,"props":543,"children":544},{},[545,550],{"type":37,"tag":67,"props":546,"children":547},{},[548],{"type":43,"value":549},"Step 5:",{"type":43,"value":551}," IAM Role Assignments",{"type":37,"tag":135,"props":553,"children":554},{},[555,560],{"type":37,"tag":67,"props":556,"children":557},{},[558],{"type":43,"value":559},"Step 6:",{"type":43,"value":561}," Bootstrap Project Setup (Creation and API enablement)",{"type":37,"tag":404,"props":563,"children":565},{"id":564},"phase-4-configuration-wrap-up",[566],{"type":43,"value":567},"Phase 4: Configuration & Wrap-up",{"type":37,"tag":57,"props":569,"children":570},{},[571,575,577,580],{"type":37,"tag":414,"props":572,"children":573},{},[574],{"type":43,"value":418},{"type":43,"value":576}," Generate the FAST dataset configuration, handle existing organization policies, and prepare for the final Terraform apply.",{"type":37,"tag":422,"props":578,"children":579},{},[],{"type":37,"tag":414,"props":581,"children":582},{},[583,584],{"type":43,"value":429},{"type":37,"tag":431,"props":585,"children":587},{"href":586},"references\u002Fphase4-config-and-wrapup.md",[588],{"type":43,"value":589},"Configuration & Wrap-up",{"type":37,"tag":131,"props":591,"children":592},{},[593,603,613],{"type":37,"tag":135,"props":594,"children":595},{},[596,601],{"type":37,"tag":67,"props":597,"children":598},{},[599],{"type":43,"value":600},"Step 7:",{"type":43,"value":602}," Configuration Generation (Datasets, defaults.yaml, local paths)",{"type":37,"tag":135,"props":604,"children":605},{},[606,611],{"type":37,"tag":67,"props":607,"children":608},{},[609],{"type":43,"value":610},"Step 8:",{"type":43,"value":612}," Organization Policy Import Check",{"type":37,"tag":135,"props":614,"children":615},{},[616,621],{"type":37,"tag":67,"props":617,"children":618},{},[619],{"type":43,"value":620},"Step 9:",{"type":43,"value":622}," Wrap-up & Apply",{"items":624,"total":802},[625,643,659,679,692,697,711,728,745,758,774,784],{"slug":626,"name":626,"fn":627,"description":628,"org":629,"tags":630,"stars":640,"repoUrl":641,"updatedAt":642},"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},[631,634,637],{"name":632,"slug":633,"type":16},"Documentation","documentation",{"name":635,"slug":636,"type":16},"Knowledge Base","knowledge-base",{"name":638,"slug":639,"type":16},"Search","search",6749,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fknowledge-catalog","2026-07-12T07:38:52.157375",{"slug":644,"name":645,"fn":646,"description":647,"org":648,"tags":649,"stars":640,"repoUrl":641,"updatedAt":658},"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},[650,653,654,657],{"name":651,"slug":652,"type":16},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":16},{"name":655,"slug":656,"type":16},"Knowledge Management","knowledge-management",{"name":638,"slug":639,"type":16},"2026-07-12T07:38:22.196851",{"slug":660,"name":660,"fn":661,"description":662,"org":663,"tags":664,"stars":18,"repoUrl":19,"updatedAt":678},"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},[665,668,671,674,675],{"name":666,"slug":667,"type":16},"Automation","automation",{"name":669,"slug":670,"type":16},"Engineering","engineering",{"name":672,"slug":673,"type":16},"GitHub","github",{"name":9,"slug":8,"type":16},{"name":676,"slug":677,"type":16},"Pull Requests","pull-requests","2026-07-31T06:23:36.935005",{"slug":680,"name":680,"fn":681,"description":682,"org":683,"tags":684,"stars":18,"repoUrl":19,"updatedAt":691},"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},[685,686,689],{"name":9,"slug":8,"type":16},{"name":687,"slug":688,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":690,"slug":25,"type":16},"Terraform","2026-07-12T07:38:23.514555",{"slug":4,"name":4,"fn":5,"description":6,"org":693,"tags":694,"stars":18,"repoUrl":19,"updatedAt":20},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[695,696],{"name":9,"slug":8,"type":16},{"name":14,"slug":15,"type":16},{"slug":698,"name":698,"fn":699,"description":700,"org":701,"tags":702,"stars":708,"repoUrl":709,"updatedAt":710},"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},[703,706,707],{"name":704,"slug":705,"type":16},"CLI","cli",{"name":669,"slug":670,"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":712,"name":712,"fn":713,"description":714,"org":715,"tags":716,"stars":708,"repoUrl":709,"updatedAt":727},"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},[717,720,721,724],{"name":718,"slug":719,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":722,"slug":723,"type":16},"LLM","llm",{"name":725,"slug":726,"type":16},"MCP","mcp","2026-07-12T07:39:10.911302",{"slug":729,"name":729,"fn":730,"description":731,"org":732,"tags":733,"stars":708,"repoUrl":709,"updatedAt":744},"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},[734,737,740,741],{"name":735,"slug":736,"type":16},"Audio","audio",{"name":738,"slug":739,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},{"name":742,"slug":743,"type":16},"Vertex AI","vertex-ai","2026-07-12T07:39:16.623879",{"slug":746,"name":746,"fn":747,"description":748,"org":749,"tags":750,"stars":708,"repoUrl":709,"updatedAt":757},"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},[751,752,753,756],{"name":738,"slug":739,"type":16},{"name":9,"slug":8,"type":16},{"name":754,"slug":755,"type":16},"Image Generation","image-generation",{"name":742,"slug":743,"type":16},"2026-07-12T07:39:15.372822",{"slug":759,"name":759,"fn":760,"description":761,"org":762,"tags":763,"stars":708,"repoUrl":709,"updatedAt":773},"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},[764,765,766,767,770],{"name":735,"slug":736,"type":16},{"name":738,"slug":739,"type":16},{"name":9,"slug":8,"type":16},{"name":768,"slug":769,"type":16},"Media","media",{"name":771,"slug":772,"type":16},"Video","video","2026-07-12T07:39:09.672849",{"slug":775,"name":775,"fn":776,"description":777,"org":778,"tags":779,"stars":708,"repoUrl":709,"updatedAt":783},"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},[780,781,782],{"name":738,"slug":739,"type":16},{"name":9,"slug":8,"type":16},{"name":771,"slug":772,"type":16},"2026-07-12T07:39:13.749081",{"slug":785,"name":785,"fn":786,"description":787,"org":788,"tags":789,"stars":708,"repoUrl":709,"updatedAt":801},"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},[790,791,792,795,798],{"name":735,"slug":736,"type":16},{"name":738,"slug":739,"type":16},{"name":793,"slug":794,"type":16},"Gemini","gemini",{"name":796,"slug":797,"type":16},"Speech","speech",{"name":799,"slug":800,"type":16},"Text-to-Speech","text-to-speech","2026-07-12T07:39:17.86673",80,{"items":804,"total":260},[805,813,819],{"slug":660,"name":660,"fn":661,"description":662,"org":806,"tags":807,"stars":18,"repoUrl":19,"updatedAt":678},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[808,809,810,811,812],{"name":666,"slug":667,"type":16},{"name":669,"slug":670,"type":16},{"name":672,"slug":673,"type":16},{"name":9,"slug":8,"type":16},{"name":676,"slug":677,"type":16},{"slug":680,"name":680,"fn":681,"description":682,"org":814,"tags":815,"stars":18,"repoUrl":19,"updatedAt":691},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[816,817,818],{"name":9,"slug":8,"type":16},{"name":687,"slug":688,"type":16},{"name":690,"slug":25,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":820,"tags":821,"stars":18,"repoUrl":19,"updatedAt":20},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[822,823],{"name":9,"slug":8,"type":16},{"name":14,"slug":15,"type":16}]