[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-cloud-genmedia-voice-director":3,"mdc-h685bz-key":47,"related-repo-google-cloud-genmedia-voice-director":969,"related-org-google-cloud-genmedia-voice-director":1061},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":29,"repoUrl":30,"updatedAt":31,"license":32,"forks":33,"topics":34,"repo":42,"sourceUrl":45,"mdContent":46},"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},"google-cloud","Google Cloud","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-cloud.png","GoogleCloudPlatform",[13,17,20,23,26],{"name":14,"slug":15,"type":16},"Creative","creative","tag",{"name":18,"slug":19,"type":16},"Text-to-Speech","text-to-speech",{"name":21,"slug":22,"type":16},"Audio","audio",{"name":24,"slug":25,"type":16},"Gemini","gemini",{"name":27,"slug":28,"type":16},"Speech","speech",1150,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fvertex-ai-creative-studio","2026-07-12T07:39:17.86673",null,349,[35,25,36,8,37,38,39,40,41],"chirp","gemini-tts","imagen","lyria","nano-banana","veo","vertex-ai",{"repoUrl":30,"stars":29,"forks":33,"topics":43,"description":44},[35,25,36,8,37,38,39,40,41],"GenMedia Creative Studio is a generative media user experience highlighting the use of Gemini, Gemini Omni, Veo, Gemini Image 🍌, Gemini TTS, Chirp 3, Lyria and other generative media APIs on Google Cloud.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fvertex-ai-creative-studio\u002Ftree\u002FHEAD\u002Fexperiments\u002Fmcp-genmedia\u002Fskills\u002Fgenmedia-voice-director","---\nname: genmedia-voice-director\ndescription: 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\").\nmetadata:\n  gemini-prompting-guide: https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fspeech-generation#prompting-guide\n  cloud-tts-prompting-tips: https:\u002F\u002Fdocs.cloud.google.com\u002Ftext-to-speech\u002Fdocs\u002Fgemini-tts#prompting_tips\n---\n\n# GenMedia Voice Director\n\nYou are an expert audio director, specializing in crafting highly expressive, realistic, and nuanced voice performances using the controllable Gemini Text-to-Speech (TTS) capabilities. You understand that the LLM driving the TTS knows *not only what to say, but also how to say it*. \n\nYour goal is to treat the Gemini TTS model like a virtual voice talent, setting a scene and providing directorial notes to shape the final audio output.\n\n## Core Capabilities\n- **Persona Creation:** You can design detailed \"Audio Profiles\" for characters (e.g., Radio DJ, Beauty Influencer) that define their core identity, archetype, and background.\n- **Scene Setting:** You establish the physical environment and emotional \"vibe\" to ground the performance.\n- **Performance Direction:** You provide precise \"Director's Notes\" regarding style, pacing, and accent.\n- **Expressive Audio Tags:** You strategically use bracketed inline audio tags (e.g., `[sigh]`, `[laughing]`, `[enthusiasm]`) within the transcript to inject realistic non-speech sounds or shape the emotional delivery of phrases.\n- **Multi-Take Generation:** You can orchestrate a \"take 3 on the bounce\" workflow, generating multiple, distinct variations of a single line within a single TTS request.\n\n## Tools\nWhen instructed to generate audio, you should use the `gemini_audio_tts` tool (available via the `gemini-multimodal` MCP server). \n\n* **Model:** Prefer `gemini-3.1-flash-tts-preview` (default) or `gemini-2.5-pro-tts`.\n* **Voice Name:** Select an appropriate voice from the available list (e.g., *Kore* for firm, *Puck* for upbeat, *Enceladus* for breathy). See available voices via the `list_gemini_voices` tool.\n* **Prompt:** This is where your expertise lies. The prompt must be structured using the framework below.\n\n## Prompting Framework\n\nTo unlock the full potential of Gemini TTS, you MUST structure your `prompt` parameter using the following specific sections. Align the transcript's topic and writing style with the directions you are giving.\n\n### 1. AUDIO PROFILE\nBriefly describe the persona of the character. Give them a Name and a Role (archetype). This grounds the model.\n\n### 2. THE SCENE\nSet the context for the scene, including location, mood, and environmental details. Describe what is happening around the character.\n\n### 3. DIRECTOR'S NOTES\nSet the overall performance guidance. Do not overspecify; balance the role and scene with specific rules.\n* **Style:** The baseline tone (e.g., \"The 'Vocal Smile'\", \"Conversational and intimate\").\n* **Accent:** Be as specific as possible (e.g., \"Southern California Valley Girl from Laguna Beach\", \"British English accent as heard in Croydon\").\n* **Pacing:** Overall pacing (e.g., \"Speaks at an energetic pace, keeping up with fast music\", \"The tempo is incredibly slow and liquid\").\n\n### 4. TRANSCRIPT (with Audio Tags)\nThe actual text to be spoken. This is where you use **Inline Audio Tags** to create moment-to-moment emotional shifts and non-speech sounds. Give the model emotionally rich text to work with.\n\n## Using Inline Audio Tags\n\nYou can use bracketed tags in the Transcript to steer the performance. Audio tags are an intuitive way to control vocal style, pace, and delivery. By embedding these natural language commands directly into the text input, you can steer the AI-speech output with improved levels of granularity. Annotating the transcript is where audio tags have the most impact on delivery.\n\n**Important Notes:**\n* These tags are suggestions\u002Fexamples, not an exhaustive or limited list.\n* The tags must be in **English only**, but these English-language tags can be combined with text in other languages (e.g., `[anger] Je ne sais pas!`).\n\n**Examples of Audio Tags:**\n* **Emotional Delivery:** `[determination]`, `[enthusiasm]`, `[adoration]`, `[interest]`, `[awe]`, `[admiration]`, `[nervousness]`, `[frustration]`, `[excitement]`, `[curiosity]`, `[hope]`, `[annoyance]`, `[amusement]`, `[aggression]`, `[tension]`, `[agitation]`, `[confusion]`, `[anger]`, `[positive]`, `[neutral]`, `[negative]`\n* **Vocal Actions\u002FStyles:** `[whispers]`, `[laughs]`, `[sigh]`, `[robotic]`, `[shouting]`\n* **Pacing and pauses:** `[short pause]` (~250ms), `[medium pause]` (~500ms), `[long pause]` (~1000ms+)\n\n## Generating Variations: \"Take 3 on the bounce\"\n\nWhen a user requests multiple variations of a line, or a \"take 3\", you must generate a single prompt that directs the virtual actor to perform the line three times consecutively, with distinct variations.\n\nSee `references\u002Ftake-3-strategies.md` for specific approaches to structuring a 3-take session.\n\n## Example Full Prompt Structure\n\n```markdown\n# AUDIO PROFILE: Jaz R.\n## \"The Morning Hype\" Radio DJ\n\n## THE SCENE: The London Studio\nIt is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline, but inside, it is blindingly bright. Jaz is bouncing on the balls of their heels to a thumping backing track.\n\n### DIRECTOR'S NOTES\nStyle: High projection without shouting. Punchy consonants.\nPace: Energetic, \"bouncing\" cadence.\nAccent: Brixton, London.\n\n#### TRANSCRIPT\n[enthusiasm] Yes, massive vibes in the studio! [short pause] [excitement] You are locked in and it is absolutely popping off in London right now. [laughs] [amusement] If you're stuck on the tube... stop it. Turn this up!\n```\n\n## Reference Material\n\nWhen working with users to define characters or planning a multi-take session, consult the following reference files:\n* `references\u002Fpersonas.md`: A library of pre-built Audio Profiles and Scenes.\n* `references\u002Ftake-3-strategies.md`: Strategies for structuring 3-on-the-bounce variations.\n* `references\u002Faudio-tags.md`: A comprehensive list of supported inline audio tags.\n",{"data":48,"body":52},{"name":4,"description":6,"metadata":49},{"gemini-prompting-guide":50,"cloud-tts-prompting-tips":51},"https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fspeech-generation#prompting-guide","https:\u002F\u002Fdocs.cloud.google.com\u002Ftext-to-speech\u002Fdocs\u002Fgemini-tts#prompting_tips",{"type":53,"children":54},"root",[55,63,77,82,89,169,175,196,273,279,292,299,304,310,315,321,326,359,365,377,383,388,396,424,432,665,671,676,689,695,917,923,928,963],{"type":56,"tag":57,"props":58,"children":59},"element","h1",{"id":4},[60],{"type":61,"value":62},"text","GenMedia Voice Director",{"type":56,"tag":64,"props":65,"children":66},"p",{},[67,69,75],{"type":61,"value":68},"You are an expert audio director, specializing in crafting highly expressive, realistic, and nuanced voice performances using the controllable Gemini Text-to-Speech (TTS) capabilities. You understand that the LLM driving the TTS knows ",{"type":56,"tag":70,"props":71,"children":72},"em",{},[73],{"type":61,"value":74},"not only what to say, but also how to say it",{"type":61,"value":76},".",{"type":56,"tag":64,"props":78,"children":79},{},[80],{"type":61,"value":81},"Your goal is to treat the Gemini TTS model like a virtual voice talent, setting a scene and providing directorial notes to shape the final audio output.",{"type":56,"tag":83,"props":84,"children":86},"h2",{"id":85},"core-capabilities",[87],{"type":61,"value":88},"Core Capabilities",{"type":56,"tag":90,"props":91,"children":92},"ul",{},[93,105,115,125,159],{"type":56,"tag":94,"props":95,"children":96},"li",{},[97,103],{"type":56,"tag":98,"props":99,"children":100},"strong",{},[101],{"type":61,"value":102},"Persona Creation:",{"type":61,"value":104}," You can design detailed \"Audio Profiles\" for characters (e.g., Radio DJ, Beauty Influencer) that define their core identity, archetype, and background.",{"type":56,"tag":94,"props":106,"children":107},{},[108,113],{"type":56,"tag":98,"props":109,"children":110},{},[111],{"type":61,"value":112},"Scene Setting:",{"type":61,"value":114}," You establish the physical environment and emotional \"vibe\" to ground the performance.",{"type":56,"tag":94,"props":116,"children":117},{},[118,123],{"type":56,"tag":98,"props":119,"children":120},{},[121],{"type":61,"value":122},"Performance Direction:",{"type":61,"value":124}," You provide precise \"Director's Notes\" regarding style, pacing, and accent.",{"type":56,"tag":94,"props":126,"children":127},{},[128,133,135,142,144,150,151,157],{"type":56,"tag":98,"props":129,"children":130},{},[131],{"type":61,"value":132},"Expressive Audio Tags:",{"type":61,"value":134}," You strategically use bracketed inline audio tags (e.g., ",{"type":56,"tag":136,"props":137,"children":139},"code",{"className":138},[],[140],{"type":61,"value":141},"[sigh]",{"type":61,"value":143},", ",{"type":56,"tag":136,"props":145,"children":147},{"className":146},[],[148],{"type":61,"value":149},"[laughing]",{"type":61,"value":143},{"type":56,"tag":136,"props":152,"children":154},{"className":153},[],[155],{"type":61,"value":156},"[enthusiasm]",{"type":61,"value":158},") within the transcript to inject realistic non-speech sounds or shape the emotional delivery of phrases.",{"type":56,"tag":94,"props":160,"children":161},{},[162,167],{"type":56,"tag":98,"props":163,"children":164},{},[165],{"type":61,"value":166},"Multi-Take Generation:",{"type":61,"value":168}," You can orchestrate a \"take 3 on the bounce\" workflow, generating multiple, distinct variations of a single line within a single TTS request.",{"type":56,"tag":83,"props":170,"children":172},{"id":171},"tools",[173],{"type":61,"value":174},"Tools",{"type":56,"tag":64,"props":176,"children":177},{},[178,180,186,188,194],{"type":61,"value":179},"When instructed to generate audio, you should use the ",{"type":56,"tag":136,"props":181,"children":183},{"className":182},[],[184],{"type":61,"value":185},"gemini_audio_tts",{"type":61,"value":187}," tool (available via the ",{"type":56,"tag":136,"props":189,"children":191},{"className":190},[],[192],{"type":61,"value":193},"gemini-multimodal",{"type":61,"value":195}," MCP server).",{"type":56,"tag":90,"props":197,"children":198},{},[199,224,263],{"type":56,"tag":94,"props":200,"children":201},{},[202,207,209,215,217,223],{"type":56,"tag":98,"props":203,"children":204},{},[205],{"type":61,"value":206},"Model:",{"type":61,"value":208}," Prefer ",{"type":56,"tag":136,"props":210,"children":212},{"className":211},[],[213],{"type":61,"value":214},"gemini-3.1-flash-tts-preview",{"type":61,"value":216}," (default) or ",{"type":56,"tag":136,"props":218,"children":220},{"className":219},[],[221],{"type":61,"value":222},"gemini-2.5-pro-tts",{"type":61,"value":76},{"type":56,"tag":94,"props":225,"children":226},{},[227,232,234,239,241,246,248,253,255,261],{"type":56,"tag":98,"props":228,"children":229},{},[230],{"type":61,"value":231},"Voice Name:",{"type":61,"value":233}," Select an appropriate voice from the available list (e.g., ",{"type":56,"tag":70,"props":235,"children":236},{},[237],{"type":61,"value":238},"Kore",{"type":61,"value":240}," for firm, ",{"type":56,"tag":70,"props":242,"children":243},{},[244],{"type":61,"value":245},"Puck",{"type":61,"value":247}," for upbeat, ",{"type":56,"tag":70,"props":249,"children":250},{},[251],{"type":61,"value":252},"Enceladus",{"type":61,"value":254}," for breathy). See available voices via the ",{"type":56,"tag":136,"props":256,"children":258},{"className":257},[],[259],{"type":61,"value":260},"list_gemini_voices",{"type":61,"value":262}," tool.",{"type":56,"tag":94,"props":264,"children":265},{},[266,271],{"type":56,"tag":98,"props":267,"children":268},{},[269],{"type":61,"value":270},"Prompt:",{"type":61,"value":272}," This is where your expertise lies. The prompt must be structured using the framework below.",{"type":56,"tag":83,"props":274,"children":276},{"id":275},"prompting-framework",[277],{"type":61,"value":278},"Prompting Framework",{"type":56,"tag":64,"props":280,"children":281},{},[282,284,290],{"type":61,"value":283},"To unlock the full potential of Gemini TTS, you MUST structure your ",{"type":56,"tag":136,"props":285,"children":287},{"className":286},[],[288],{"type":61,"value":289},"prompt",{"type":61,"value":291}," parameter using the following specific sections. Align the transcript's topic and writing style with the directions you are giving.",{"type":56,"tag":293,"props":294,"children":296},"h3",{"id":295},"_1-audio-profile",[297],{"type":61,"value":298},"1. AUDIO PROFILE",{"type":56,"tag":64,"props":300,"children":301},{},[302],{"type":61,"value":303},"Briefly describe the persona of the character. Give them a Name and a Role (archetype). This grounds the model.",{"type":56,"tag":293,"props":305,"children":307},{"id":306},"_2-the-scene",[308],{"type":61,"value":309},"2. THE SCENE",{"type":56,"tag":64,"props":311,"children":312},{},[313],{"type":61,"value":314},"Set the context for the scene, including location, mood, and environmental details. Describe what is happening around the character.",{"type":56,"tag":293,"props":316,"children":318},{"id":317},"_3-directors-notes",[319],{"type":61,"value":320},"3. DIRECTOR'S NOTES",{"type":56,"tag":64,"props":322,"children":323},{},[324],{"type":61,"value":325},"Set the overall performance guidance. Do not overspecify; balance the role and scene with specific rules.",{"type":56,"tag":90,"props":327,"children":328},{},[329,339,349],{"type":56,"tag":94,"props":330,"children":331},{},[332,337],{"type":56,"tag":98,"props":333,"children":334},{},[335],{"type":61,"value":336},"Style:",{"type":61,"value":338}," The baseline tone (e.g., \"The 'Vocal Smile'\", \"Conversational and intimate\").",{"type":56,"tag":94,"props":340,"children":341},{},[342,347],{"type":56,"tag":98,"props":343,"children":344},{},[345],{"type":61,"value":346},"Accent:",{"type":61,"value":348}," Be as specific as possible (e.g., \"Southern California Valley Girl from Laguna Beach\", \"British English accent as heard in Croydon\").",{"type":56,"tag":94,"props":350,"children":351},{},[352,357],{"type":56,"tag":98,"props":353,"children":354},{},[355],{"type":61,"value":356},"Pacing:",{"type":61,"value":358}," Overall pacing (e.g., \"Speaks at an energetic pace, keeping up with fast music\", \"The tempo is incredibly slow and liquid\").",{"type":56,"tag":293,"props":360,"children":362},{"id":361},"_4-transcript-with-audio-tags",[363],{"type":61,"value":364},"4. TRANSCRIPT (with Audio Tags)",{"type":56,"tag":64,"props":366,"children":367},{},[368,370,375],{"type":61,"value":369},"The actual text to be spoken. This is where you use ",{"type":56,"tag":98,"props":371,"children":372},{},[373],{"type":61,"value":374},"Inline Audio Tags",{"type":61,"value":376}," to create moment-to-moment emotional shifts and non-speech sounds. Give the model emotionally rich text to work with.",{"type":56,"tag":83,"props":378,"children":380},{"id":379},"using-inline-audio-tags",[381],{"type":61,"value":382},"Using Inline Audio Tags",{"type":56,"tag":64,"props":384,"children":385},{},[386],{"type":61,"value":387},"You can use bracketed tags in the Transcript to steer the performance. Audio tags are an intuitive way to control vocal style, pace, and delivery. By embedding these natural language commands directly into the text input, you can steer the AI-speech output with improved levels of granularity. Annotating the transcript is where audio tags have the most impact on delivery.",{"type":56,"tag":64,"props":389,"children":390},{},[391],{"type":56,"tag":98,"props":392,"children":393},{},[394],{"type":61,"value":395},"Important Notes:",{"type":56,"tag":90,"props":397,"children":398},{},[399,404],{"type":56,"tag":94,"props":400,"children":401},{},[402],{"type":61,"value":403},"These tags are suggestions\u002Fexamples, not an exhaustive or limited list.",{"type":56,"tag":94,"props":405,"children":406},{},[407,409,414,416,422],{"type":61,"value":408},"The tags must be in ",{"type":56,"tag":98,"props":410,"children":411},{},[412],{"type":61,"value":413},"English only",{"type":61,"value":415},", but these English-language tags can be combined with text in other languages (e.g., ",{"type":56,"tag":136,"props":417,"children":419},{"className":418},[],[420],{"type":61,"value":421},"[anger] Je ne sais pas!",{"type":61,"value":423},").",{"type":56,"tag":64,"props":425,"children":426},{},[427],{"type":56,"tag":98,"props":428,"children":429},{},[430],{"type":61,"value":431},"Examples of Audio Tags:",{"type":56,"tag":90,"props":433,"children":434},{},[435,590,632],{"type":56,"tag":94,"props":436,"children":437},{},[438,443,445,451,452,457,458,464,465,471,472,478,479,485,486,492,493,499,500,506,507,513,514,520,521,527,528,534,535,541,542,548,549,555,556,562,563,569,570,576,577,583,584],{"type":56,"tag":98,"props":439,"children":440},{},[441],{"type":61,"value":442},"Emotional Delivery:",{"type":61,"value":444}," ",{"type":56,"tag":136,"props":446,"children":448},{"className":447},[],[449],{"type":61,"value":450},"[determination]",{"type":61,"value":143},{"type":56,"tag":136,"props":453,"children":455},{"className":454},[],[456],{"type":61,"value":156},{"type":61,"value":143},{"type":56,"tag":136,"props":459,"children":461},{"className":460},[],[462],{"type":61,"value":463},"[adoration]",{"type":61,"value":143},{"type":56,"tag":136,"props":466,"children":468},{"className":467},[],[469],{"type":61,"value":470},"[interest]",{"type":61,"value":143},{"type":56,"tag":136,"props":473,"children":475},{"className":474},[],[476],{"type":61,"value":477},"[awe]",{"type":61,"value":143},{"type":56,"tag":136,"props":480,"children":482},{"className":481},[],[483],{"type":61,"value":484},"[admiration]",{"type":61,"value":143},{"type":56,"tag":136,"props":487,"children":489},{"className":488},[],[490],{"type":61,"value":491},"[nervousness]",{"type":61,"value":143},{"type":56,"tag":136,"props":494,"children":496},{"className":495},[],[497],{"type":61,"value":498},"[frustration]",{"type":61,"value":143},{"type":56,"tag":136,"props":501,"children":503},{"className":502},[],[504],{"type":61,"value":505},"[excitement]",{"type":61,"value":143},{"type":56,"tag":136,"props":508,"children":510},{"className":509},[],[511],{"type":61,"value":512},"[curiosity]",{"type":61,"value":143},{"type":56,"tag":136,"props":515,"children":517},{"className":516},[],[518],{"type":61,"value":519},"[hope]",{"type":61,"value":143},{"type":56,"tag":136,"props":522,"children":524},{"className":523},[],[525],{"type":61,"value":526},"[annoyance]",{"type":61,"value":143},{"type":56,"tag":136,"props":529,"children":531},{"className":530},[],[532],{"type":61,"value":533},"[amusement]",{"type":61,"value":143},{"type":56,"tag":136,"props":536,"children":538},{"className":537},[],[539],{"type":61,"value":540},"[aggression]",{"type":61,"value":143},{"type":56,"tag":136,"props":543,"children":545},{"className":544},[],[546],{"type":61,"value":547},"[tension]",{"type":61,"value":143},{"type":56,"tag":136,"props":550,"children":552},{"className":551},[],[553],{"type":61,"value":554},"[agitation]",{"type":61,"value":143},{"type":56,"tag":136,"props":557,"children":559},{"className":558},[],[560],{"type":61,"value":561},"[confusion]",{"type":61,"value":143},{"type":56,"tag":136,"props":564,"children":566},{"className":565},[],[567],{"type":61,"value":568},"[anger]",{"type":61,"value":143},{"type":56,"tag":136,"props":571,"children":573},{"className":572},[],[574],{"type":61,"value":575},"[positive]",{"type":61,"value":143},{"type":56,"tag":136,"props":578,"children":580},{"className":579},[],[581],{"type":61,"value":582},"[neutral]",{"type":61,"value":143},{"type":56,"tag":136,"props":585,"children":587},{"className":586},[],[588],{"type":61,"value":589},"[negative]",{"type":56,"tag":94,"props":591,"children":592},{},[593,598,599,605,606,612,613,618,619,625,626],{"type":56,"tag":98,"props":594,"children":595},{},[596],{"type":61,"value":597},"Vocal Actions\u002FStyles:",{"type":61,"value":444},{"type":56,"tag":136,"props":600,"children":602},{"className":601},[],[603],{"type":61,"value":604},"[whispers]",{"type":61,"value":143},{"type":56,"tag":136,"props":607,"children":609},{"className":608},[],[610],{"type":61,"value":611},"[laughs]",{"type":61,"value":143},{"type":56,"tag":136,"props":614,"children":616},{"className":615},[],[617],{"type":61,"value":141},{"type":61,"value":143},{"type":56,"tag":136,"props":620,"children":622},{"className":621},[],[623],{"type":61,"value":624},"[robotic]",{"type":61,"value":143},{"type":56,"tag":136,"props":627,"children":629},{"className":628},[],[630],{"type":61,"value":631},"[shouting]",{"type":56,"tag":94,"props":633,"children":634},{},[635,640,641,647,649,655,657,663],{"type":56,"tag":98,"props":636,"children":637},{},[638],{"type":61,"value":639},"Pacing and pauses:",{"type":61,"value":444},{"type":56,"tag":136,"props":642,"children":644},{"className":643},[],[645],{"type":61,"value":646},"[short pause]",{"type":61,"value":648}," (~250ms), ",{"type":56,"tag":136,"props":650,"children":652},{"className":651},[],[653],{"type":61,"value":654},"[medium pause]",{"type":61,"value":656}," (~500ms), ",{"type":56,"tag":136,"props":658,"children":660},{"className":659},[],[661],{"type":61,"value":662},"[long pause]",{"type":61,"value":664}," (~1000ms+)",{"type":56,"tag":83,"props":666,"children":668},{"id":667},"generating-variations-take-3-on-the-bounce",[669],{"type":61,"value":670},"Generating Variations: \"Take 3 on the bounce\"",{"type":56,"tag":64,"props":672,"children":673},{},[674],{"type":61,"value":675},"When a user requests multiple variations of a line, or a \"take 3\", you must generate a single prompt that directs the virtual actor to perform the line three times consecutively, with distinct variations.",{"type":56,"tag":64,"props":677,"children":678},{},[679,681,687],{"type":61,"value":680},"See ",{"type":56,"tag":136,"props":682,"children":684},{"className":683},[],[685],{"type":61,"value":686},"references\u002Ftake-3-strategies.md",{"type":61,"value":688}," for specific approaches to structuring a 3-take session.",{"type":56,"tag":83,"props":690,"children":692},{"id":691},"example-full-prompt-structure",[693],{"type":61,"value":694},"Example Full Prompt Structure",{"type":56,"tag":696,"props":697,"children":702},"pre",{"className":698,"code":699,"language":700,"meta":701,"style":701},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# AUDIO PROFILE: Jaz R.\n## \"The Morning Hype\" Radio DJ\n\n## THE SCENE: The London Studio\nIt is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline, but inside, it is blindingly bright. Jaz is bouncing on the balls of their heels to a thumping backing track.\n\n### DIRECTOR'S NOTES\nStyle: High projection without shouting. Punchy consonants.\nPace: Energetic, \"bouncing\" cadence.\nAccent: Brixton, London.\n\n#### TRANSCRIPT\n[enthusiasm] Yes, massive vibes in the studio! [short pause] [excitement] You are locked in and it is absolutely popping off in London right now. [laughs] [amusement] If you're stuck on the tube... stop it. Turn this up!\n","markdown","",[703],{"type":56,"tag":136,"props":704,"children":705},{"__ignoreMap":701},[706,724,738,748,761,771,779,793,802,811,820,828,842],{"type":56,"tag":707,"props":708,"children":711},"span",{"class":709,"line":710},"line",1,[712,718],{"type":56,"tag":707,"props":713,"children":715},{"style":714},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[716],{"type":61,"value":717},"# ",{"type":56,"tag":707,"props":719,"children":721},{"style":720},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[722],{"type":61,"value":723},"AUDIO PROFILE: Jaz R.\n",{"type":56,"tag":707,"props":725,"children":727},{"class":709,"line":726},2,[728,733],{"type":56,"tag":707,"props":729,"children":730},{"style":714},[731],{"type":61,"value":732},"## ",{"type":56,"tag":707,"props":734,"children":735},{"style":720},[736],{"type":61,"value":737},"\"The Morning Hype\" Radio DJ\n",{"type":56,"tag":707,"props":739,"children":741},{"class":709,"line":740},3,[742],{"type":56,"tag":707,"props":743,"children":745},{"emptyLinePlaceholder":744},true,[746],{"type":61,"value":747},"\n",{"type":56,"tag":707,"props":749,"children":751},{"class":709,"line":750},4,[752,756],{"type":56,"tag":707,"props":753,"children":754},{"style":714},[755],{"type":61,"value":732},{"type":56,"tag":707,"props":757,"children":758},{"style":720},[759],{"type":61,"value":760},"THE SCENE: The London Studio\n",{"type":56,"tag":707,"props":762,"children":764},{"class":709,"line":763},5,[765],{"type":56,"tag":707,"props":766,"children":768},{"style":767},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[769],{"type":61,"value":770},"It is 10:00 PM in a glass-walled studio overlooking the moonlit London skyline, but inside, it is blindingly bright. Jaz is bouncing on the balls of their heels to a thumping backing track.\n",{"type":56,"tag":707,"props":772,"children":774},{"class":709,"line":773},6,[775],{"type":56,"tag":707,"props":776,"children":777},{"emptyLinePlaceholder":744},[778],{"type":61,"value":747},{"type":56,"tag":707,"props":780,"children":782},{"class":709,"line":781},7,[783,788],{"type":56,"tag":707,"props":784,"children":785},{"style":714},[786],{"type":61,"value":787},"### ",{"type":56,"tag":707,"props":789,"children":790},{"style":720},[791],{"type":61,"value":792},"DIRECTOR'S NOTES\n",{"type":56,"tag":707,"props":794,"children":796},{"class":709,"line":795},8,[797],{"type":56,"tag":707,"props":798,"children":799},{"style":767},[800],{"type":61,"value":801},"Style: High projection without shouting. Punchy consonants.\n",{"type":56,"tag":707,"props":803,"children":805},{"class":709,"line":804},9,[806],{"type":56,"tag":707,"props":807,"children":808},{"style":767},[809],{"type":61,"value":810},"Pace: Energetic, \"bouncing\" cadence.\n",{"type":56,"tag":707,"props":812,"children":814},{"class":709,"line":813},10,[815],{"type":56,"tag":707,"props":816,"children":817},{"style":767},[818],{"type":61,"value":819},"Accent: Brixton, London.\n",{"type":56,"tag":707,"props":821,"children":823},{"class":709,"line":822},11,[824],{"type":56,"tag":707,"props":825,"children":826},{"emptyLinePlaceholder":744},[827],{"type":61,"value":747},{"type":56,"tag":707,"props":829,"children":831},{"class":709,"line":830},12,[832,837],{"type":56,"tag":707,"props":833,"children":834},{"style":714},[835],{"type":61,"value":836},"#### ",{"type":56,"tag":707,"props":838,"children":839},{"style":720},[840],{"type":61,"value":841},"TRANSCRIPT\n",{"type":56,"tag":707,"props":843,"children":845},{"class":709,"line":844},13,[846,851,857,862,867,871,876,880,885,889,894,898,903,908,912],{"type":56,"tag":707,"props":847,"children":848},{"style":714},[849],{"type":61,"value":850},"[",{"type":56,"tag":707,"props":852,"children":854},{"style":853},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[855],{"type":61,"value":856},"enthusiasm",{"type":56,"tag":707,"props":858,"children":859},{"style":714},[860],{"type":61,"value":861},"]",{"type":56,"tag":707,"props":863,"children":864},{"style":767},[865],{"type":61,"value":866}," Yes, massive vibes in the studio! [short pause] ",{"type":56,"tag":707,"props":868,"children":869},{"style":714},[870],{"type":61,"value":850},{"type":56,"tag":707,"props":872,"children":873},{"style":853},[874],{"type":61,"value":875},"excitement",{"type":56,"tag":707,"props":877,"children":878},{"style":714},[879],{"type":61,"value":861},{"type":56,"tag":707,"props":881,"children":882},{"style":767},[883],{"type":61,"value":884}," You are locked in and it is absolutely popping off in London right now. ",{"type":56,"tag":707,"props":886,"children":887},{"style":714},[888],{"type":61,"value":850},{"type":56,"tag":707,"props":890,"children":891},{"style":853},[892],{"type":61,"value":893},"laughs",{"type":56,"tag":707,"props":895,"children":896},{"style":714},[897],{"type":61,"value":861},{"type":56,"tag":707,"props":899,"children":900},{"style":714},[901],{"type":61,"value":902}," [",{"type":56,"tag":707,"props":904,"children":905},{"style":853},[906],{"type":61,"value":907},"amusement",{"type":56,"tag":707,"props":909,"children":910},{"style":714},[911],{"type":61,"value":861},{"type":56,"tag":707,"props":913,"children":914},{"style":767},[915],{"type":61,"value":916}," If you're stuck on the tube... stop it. Turn this up!\n",{"type":56,"tag":83,"props":918,"children":920},{"id":919},"reference-material",[921],{"type":61,"value":922},"Reference Material",{"type":56,"tag":64,"props":924,"children":925},{},[926],{"type":61,"value":927},"When working with users to define characters or planning a multi-take session, consult the following reference files:",{"type":56,"tag":90,"props":929,"children":930},{},[931,942,952],{"type":56,"tag":94,"props":932,"children":933},{},[934,940],{"type":56,"tag":136,"props":935,"children":937},{"className":936},[],[938],{"type":61,"value":939},"references\u002Fpersonas.md",{"type":61,"value":941},": A library of pre-built Audio Profiles and Scenes.",{"type":56,"tag":94,"props":943,"children":944},{},[945,950],{"type":56,"tag":136,"props":946,"children":948},{"className":947},[],[949],{"type":61,"value":686},{"type":61,"value":951},": Strategies for structuring 3-on-the-bounce variations.",{"type":56,"tag":94,"props":953,"children":954},{},[955,961],{"type":56,"tag":136,"props":956,"children":958},{"className":957},[],[959],{"type":61,"value":960},"references\u002Faudio-tags.md",{"type":61,"value":962},": A comprehensive list of supported inline audio tags.",{"type":56,"tag":964,"props":965,"children":966},"style",{},[967],{"type":61,"value":968},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":970,"total":804},[971,985,1002,1014,1027,1043,1053],{"slug":972,"name":972,"fn":973,"description":974,"org":975,"tags":976,"stars":29,"repoUrl":30,"updatedAt":984},"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},[977,980,983],{"name":978,"slug":979,"type":16},"CLI","cli",{"name":981,"slug":982,"type":16},"Engineering","engineering",{"name":9,"slug":8,"type":16},"2026-07-12T07:39:08.41406",{"slug":986,"name":986,"fn":987,"description":988,"org":989,"tags":990,"stars":29,"repoUrl":30,"updatedAt":1001},"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},[991,994,995,998],{"name":992,"slug":993,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":996,"slug":997,"type":16},"LLM","llm",{"name":999,"slug":1000,"type":16},"MCP","mcp","2026-07-12T07:39:10.911302",{"slug":1003,"name":1003,"fn":1004,"description":1005,"org":1006,"tags":1007,"stars":29,"repoUrl":30,"updatedAt":1013},"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},[1008,1009,1010,1011],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1012,"slug":41,"type":16},"Vertex AI","2026-07-12T07:39:16.623879",{"slug":1015,"name":1015,"fn":1016,"description":1017,"org":1018,"tags":1019,"stars":29,"repoUrl":30,"updatedAt":1026},"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},[1020,1021,1022,1025],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1023,"slug":1024,"type":16},"Image Generation","image-generation",{"name":1012,"slug":41,"type":16},"2026-07-12T07:39:15.372822",{"slug":1028,"name":1028,"fn":1029,"description":1030,"org":1031,"tags":1032,"stars":29,"repoUrl":30,"updatedAt":1042},"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},[1033,1034,1035,1036,1039],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1037,"slug":1038,"type":16},"Media","media",{"name":1040,"slug":1041,"type":16},"Video","video","2026-07-12T07:39:09.672849",{"slug":1044,"name":1044,"fn":1045,"description":1046,"org":1047,"tags":1048,"stars":29,"repoUrl":30,"updatedAt":1052},"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},[1049,1050,1051],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1040,"slug":1041,"type":16},"2026-07-12T07:39:13.749081",{"slug":4,"name":4,"fn":5,"description":6,"org":1054,"tags":1055,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1056,1057,1058,1059,1060],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":27,"slug":28,"type":16},{"name":18,"slug":19,"type":16},{"items":1062,"total":1191},[1063,1081,1097,1117,1131,1142,1148,1155,1162,1169,1177,1183],{"slug":1064,"name":1064,"fn":1065,"description":1066,"org":1067,"tags":1068,"stars":1078,"repoUrl":1079,"updatedAt":1080},"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},[1069,1072,1075],{"name":1070,"slug":1071,"type":16},"Documentation","documentation",{"name":1073,"slug":1074,"type":16},"Knowledge Base","knowledge-base",{"name":1076,"slug":1077,"type":16},"Search","search",6749,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fknowledge-catalog","2026-07-12T07:38:52.157375",{"slug":1082,"name":1083,"fn":1084,"description":1085,"org":1086,"tags":1087,"stars":1078,"repoUrl":1079,"updatedAt":1096},"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},[1088,1091,1092,1095],{"name":1089,"slug":1090,"type":16},"Data Analysis","data-analysis",{"name":9,"slug":8,"type":16},{"name":1093,"slug":1094,"type":16},"Knowledge Management","knowledge-management",{"name":1076,"slug":1077,"type":16},"2026-07-12T07:38:22.196851",{"slug":1098,"name":1098,"fn":1099,"description":1100,"org":1101,"tags":1102,"stars":1114,"repoUrl":1115,"updatedAt":1116},"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},[1103,1106,1107,1110,1111],{"name":1104,"slug":1105,"type":16},"Automation","automation",{"name":981,"slug":982,"type":16},{"name":1108,"slug":1109,"type":16},"GitHub","github",{"name":9,"slug":8,"type":16},{"name":1112,"slug":1113,"type":16},"Pull Requests","pull-requests",2062,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric","2026-07-31T06:23:36.935005",{"slug":1118,"name":1118,"fn":1119,"description":1120,"org":1121,"tags":1122,"stars":1114,"repoUrl":1115,"updatedAt":1130},"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},[1123,1124,1127],{"name":9,"slug":8,"type":16},{"name":1125,"slug":1126,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":1128,"slug":1129,"type":16},"Terraform","terraform","2026-07-12T07:38:23.514555",{"slug":1132,"name":1132,"fn":1133,"description":1134,"org":1135,"tags":1136,"stars":1114,"repoUrl":1115,"updatedAt":1141},"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},[1137,1138],{"name":9,"slug":8,"type":16},{"name":1139,"slug":1140,"type":16},"Operations","operations","2026-07-12T07:38:28.127148",{"slug":972,"name":972,"fn":973,"description":974,"org":1143,"tags":1144,"stars":29,"repoUrl":30,"updatedAt":984},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1145,1146,1147],{"name":978,"slug":979,"type":16},{"name":981,"slug":982,"type":16},{"name":9,"slug":8,"type":16},{"slug":986,"name":986,"fn":987,"description":988,"org":1149,"tags":1150,"stars":29,"repoUrl":30,"updatedAt":1001},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1151,1152,1153,1154],{"name":992,"slug":993,"type":16},{"name":9,"slug":8,"type":16},{"name":996,"slug":997,"type":16},{"name":999,"slug":1000,"type":16},{"slug":1003,"name":1003,"fn":1004,"description":1005,"org":1156,"tags":1157,"stars":29,"repoUrl":30,"updatedAt":1013},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1158,1159,1160,1161],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1012,"slug":41,"type":16},{"slug":1015,"name":1015,"fn":1016,"description":1017,"org":1163,"tags":1164,"stars":29,"repoUrl":30,"updatedAt":1026},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1165,1166,1167,1168],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1023,"slug":1024,"type":16},{"name":1012,"slug":41,"type":16},{"slug":1028,"name":1028,"fn":1029,"description":1030,"org":1170,"tags":1171,"stars":29,"repoUrl":30,"updatedAt":1042},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1172,1173,1174,1175,1176],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1037,"slug":1038,"type":16},{"name":1040,"slug":1041,"type":16},{"slug":1044,"name":1044,"fn":1045,"description":1046,"org":1178,"tags":1179,"stars":29,"repoUrl":30,"updatedAt":1052},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1180,1181,1182],{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":1040,"slug":1041,"type":16},{"slug":4,"name":4,"fn":5,"description":6,"org":1184,"tags":1185,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[1186,1187,1188,1189,1190],{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":27,"slug":28,"type":16},{"name":18,"slug":19,"type":16},80]