[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vapi-vapi-prompt-builder":3,"mdc--kbxohs-key":43,"related-org-vapi-vapi-prompt-builder":807,"related-repo-vapi-vapi-prompt-builder":938},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":38,"sourceUrl":41,"mdContent":42},"vapi-prompt-builder","design and audit Vapi voice agent prompts","Create, improve, or audit Vapi voice agent and Squad system prompts for production phone and web based voice agents. Use when the user wants help designing a Vapi assistant prompt, multi-assistant Squad prompt set, refining an existing prompt, creating prompt sections, building an intake or handoff workflow, improving tool-use instructions, adding guardrails, or optimizing voice-agent behavior for brevity, turn-taking, error handling, caller data collection, escalation, handoffs, and spoken formatting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"vapi","Vapi","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvapi.png","VapiAI",[13,17,20,23],{"name":14,"slug":15,"type":16},"Prompt Engineering","prompt-engineering","tag",{"name":18,"slug":19,"type":16},"Agents","agents",{"name":21,"slug":22,"type":16},"Voice","voice",{"name":24,"slug":25,"type":16},"Speech","speech",53,"https:\u002F\u002Fgithub.com\u002FVapiAI\u002Fskills","2026-07-17T06:08:21.647767","MIT",7,[32,33,34,35,36,8,37],"agent-skills","claude-code","codex-skills","openclaw-skills","skills","vapi-ai",{"repoUrl":27,"stars":26,"forks":30,"topics":39,"description":40},[32,33,34,35,36,8,37],"A set of skills and MCP connector to allow agents to build Vapi AI agents, from creating tools and assistants to a phone call","https:\u002F\u002Fgithub.com\u002FVapiAI\u002Fskills\u002Ftree\u002FHEAD\u002Fvapi-prompt-builder","---\nname: vapi-prompt-builder\ndescription: Create, improve, or audit Vapi voice agent and Squad system prompts for production phone and web based voice agents. Use when the user wants help designing a Vapi assistant prompt, multi-assistant Squad prompt set, refining an existing prompt, creating prompt sections, building an intake or handoff workflow, improving tool-use instructions, adding guardrails, or optimizing voice-agent behavior for brevity, turn-taking, error handling, caller data collection, escalation, handoffs, and spoken formatting.\nlicense: MIT\ncompatibility: Requires internet access and a Vapi API key (VAPI_API_KEY).\nmetadata:\n  author: vapi\n  version: \"1.0\"\n---\n\n# Vapi Prompt Builder\n\n## Core Workflow\n\nUse this skill to produce production-ready Vapi voice agent system prompts. Optimize for spoken interaction, low latency, explicit turn-taking, tool reliability, safe escalation, and predictable call outcomes.\n\nStart by classifying the request:\n\n- Create: Build a new Vapi system prompt from a business goal or agent concept.\n- Improve: Rewrite an existing prompt while preserving intended behavior.\n- Audit: Review an existing prompt and return findings, gaps, and recommended changes.\n\nThen resolve deployment shape:\n\n- Single assistant: one Vapi assistant owns the call flow.\n- Squad: multiple specialized assistants hand off between each other.\n\nIf the request is ambiguous and the workflow may involve multiple specialized roles, routing, or handoffs, stop and ask: \"Should this be designed as one Vapi assistant, or as a Vapi Squad with multiple assistants and handoffs?\" Do not draft until this is resolved.\n\nRead `references\u002Fsquad-prompting.md` when the user mentions squads, Handoff Tools, handoffs between assistants or squads, silent handoffs, dynamic routing, router\u002Ftriage assistants, specialist assistants, or a workflow that is too broad for one reliable prompt.\n\nBefore writing or preserving workflow details, run a capability-grounding pass. Verify that every claimed input, artifact, tool action, side effect, and example is possible through the actual call channel, runtime context, visible Vapi tools, or explicitly described backend behavior. Read `references\u002Fcapability-grounding.md` when the prompt mentions files, uploads, attachments, documents, screenshots, browser\u002Fweb actions, async jobs, integrations, or any action the phone caller cannot perform directly during the call.\n\nRead `references\u002Fvoice-prompt-patterns.md` when creating or substantially rewriting a prompt, or when the request involves voice style, examples, tool behavior, information collection, or call endings.\n\nRun an identifier-hygiene pass before finalizing. Read `references\u002Fidentifier-hygiene.md` when the prompt uses tool names, resource IDs, snake_case identifiers, placeholder names, or generic values such as `the_tool_name`.\n\nRun a Vapi trust-boundary pass when the prompt, tools, or configuration mention authentication, caller identity, account IDs, permissions, secrets, secure values, verified values, static parameters, `function.parameters`, dynamic variables, `variableExtractionPlan`, tool aliases, handoff arguments, or sensitive tool responses. Read `references\u002Fvapi-security-trust.md` before recommending where those values belong.\n\nRun a Vapi readiness pass before presenting an artifact as ready to build or configure. Read `references\u002Fvapi-readiness.md` when the output includes tools, structured outputs, dynamic variables, Squads, handoffs, pronunciation guidance, testing\u002Fevals, or configuration notes. Separate confirmed Vapi configuration from assumptions and missing deployment inputs.\n\n## Intake\n\nAsk the fewest questions needed to make a useful first draft. Prefer a complete draft with clear assumptions over a long upfront questionnaire.\n\nAlways collect or infer:\n\n- Business or use case\n- Deployment shape: single assistant or Squad\n- Agent role and call objective\n- Caller type and likely intents\n- Success criteria\n- Required workflows\n- Handoff\u002Frouting boundaries when using a Squad\n- Tools or actions the agent can use\n- Tool schemas, structured outputs, and handoff destinations that are already known\n- Model provider when Handoff Tool configuration patterns depend on it\n- Which values are server-trusted, caller-spoken, tool-returned, LLM-derived, or security-sensitive\n- How each required input becomes available to the agent or backend\n- Human handoff or escalation rules\n- Information the agent may collect\n- Information the agent must not collect\n- Tone, persona, and brand constraints\n\nRead `references\u002Fintake-question-bank.md` when the request is vague, high-risk, or missing several essentials.\n\nIf the user provides an existing prompt, inspect it before asking questions. Ask only about missing facts, contradictions, tool behavior, compliance constraints, or ambiguous handoff rules.\n\n## Prompt Sections\n\nFor a single assistant, generate or improve these sections unless the user asks for a narrower output:\n\n1. Identity and purpose\n2. Personality and speaking style\n3. Response guidelines\n4. Guardrails and safety behavior\n5. Context and dynamic variables\n6. Workflow and intent routing\n7. Tool-use rules\n8. Error handling and recovery\n9. Smart information collection\n10. Escalation, transfer, and call ending\n11. Few-shot examples\n\nFor a Squad, generate or improve:\n\n1. Squad purpose and member map\n2. Entry assistant behavior\n3. One focused system prompt per assistant\n4. Handoff decision rules\n5. Context handoff requirements\n6. Tool boundaries per assistant\n7. Shared guardrails\n8. Per-assistant examples, including handoff examples\n9. External test scenarios for routing and context preservation\n\nFor new prompts and substantial rewrites, include a compact `Examples` section inside the final Vapi system prompt unless the user explicitly asks to omit examples or there is a strong latency\u002Ftoken reason to keep the prompt minimal. Do not substitute external test scenarios for in-prompt examples.\n\nKeep the final system prompt lean. Do not include tutorial prose, rationale, or markdown intended for humans unless the user requests it. Use section headers only if they improve maintainability.\n\nFormat the final prompt for fast model parsing, not as human-facing documentation:\n\n- Prefer compact bullets, numbered workflow steps, and short imperative rules over dense paragraphs.\n- Keep each rule to one idea; split multi-clause paragraphs into separate rules.\n- Use paragraphs only for brief identity\u002Fpersonality context, and keep them to one to three short sentences.\n- Do not confuse prompt formatting with spoken output: markdown is acceptable inside the system prompt, but instruct the agent not to speak markdown, bullets, or numbered lists to callers.\n- Before finalizing, compress any section that reads like explanatory prose into operational instructions.\n\n## Example Design\n\nDesign in-prompt examples as behavioral training data for the voice agent:\n\n- Include at least three examples when the prompt covers a complete workflow: happy path, edge case, and error recovery.\n- Cover each primary workflow when the agent has multiple high-value intents.\n- Show realistic caller turns, concise assistant responses, tool calls, and tool outcomes.\n- Include branching behavior for zero results, multiple results, invalid input, unclear speech, and tool failure when relevant.\n- Ground every example in actual channel, runtime, tool, or backend capabilities.\n- Use exact tool identifiers only in explicit `Tool Call:` lines or machine-facing configuration notes.\n- Keep examples short enough to justify their latency cost.\n- Use shape examples instead of repeating forbidden phrases, sensitive values, or unsupported artifacts.\n\nKeep external test scenarios separate from the final prompt. Test scenarios are for the human\u002Foperator to validate the prompt; examples are instructions embedded in the prompt for the model to imitate.\n\n## Voice Optimization\n\nBefore returning the final prompt, run a voice-agent pass:\n\n- Keep caller-facing turns short, usually one or two sentences.\n- Ask one question at a time.\n- Avoid numbered lists, bullets, markdown, and visual formatting in agent responses.\n- Convert dates, phone numbers, currency, times, and URLs to spoken-friendly forms.\n- Replace tool IDs, resource slugs, snake_case identifiers, and placeholder names in prose with natural capability descriptions.\n- Add explicit rules for interruptions, silence, unclear input, and tool failures.\n- Distinguish light banter from hard off-topic requests.\n- Calibrate human-feel controls to the use case: all production agents need natural pacing, repair, and warmth; only add disfluency, banter, or personal rapport when they fit the persona and risk profile.\n- Remove channel-impossible behaviors unless a tool or backend contract makes them real.\n- Prefer deterministic Vapi configuration over prompt instructions when reliability or security matters.\n\n## Tool and Configuration Notes\n\nWhen tools are involved, review both prompt instructions and tool configuration. Flag items that should be configured outside the system prompt:\n\n- Tool descriptions should say when to call, when not to call, and required parameter formats.\n- Prompt prose should describe tools by capability. Exact tool names belong only in tool-call examples, schemas, configuration notes, or Query Tool instructions where Vapi needs the system prompt to name the search tool.\n- Do not invent deployable tool schemas, structured output schemas, enum values, server URLs, or handoff destinations. Ask for them or mark them as configuration needed.\n- Transfer and end-call tools need explicit descriptions.\n- Slow tools should use request-start messages to fill dead air.\n- Pronunciation issues should use pronunciation dictionaries when available.\n- Values that must be secure, verified, or impossible for the LLM to fake should use Vapi's server-side\u002Fstatic-parameter patterns, not prompt text or LLM-filled schemas.\n- Tool responses should be short, structured, and limited to fields the model needs.\n\n## Output Modes\n\nFor a new prompt, return:\n\n- Brief assumptions, if any\n- Final Vapi system prompt, or Squad prompt set when using a Squad\n- Suggested Vapi configuration notes, if relevant\n- Configuration needed or blocking questions, if deployment-critical details are missing\n- External test scenarios, separate from the prompt\n\nFor an improved prompt, return:\n\n- Final revised prompt, or revised Squad prompt set when using a Squad\n- Important changes made\n- Remaining questions or risks\n- Configuration needed or blocking questions, if deployment-critical details are missing\n- External test scenarios, separate from the prompt\n\nFor an audit, return:\n\n- Findings ordered by severity\n- Missing or weak prompt sections\n- Vapi configuration concerns\n- Concrete rewrite recommendations\n\nRead `references\u002Freview-checklist.md` before finalizing an audit or substantial rewrite.\n",{"data":44,"body":48},{"name":4,"description":6,"license":29,"compatibility":45,"metadata":46},"Requires internet access and a Vapi API key (VAPI_API_KEY).",{"author":8,"version":47},"1.0",{"type":49,"children":50},"root",[51,59,66,72,77,97,102,115,120,134,147,159,180,209,222,228,233,238,321,333,338,344,349,408,413,461,474,479,484,512,518,523,574,579,585,590,643,649,654,697,703,708,736,741,767,772,795],{"type":52,"tag":53,"props":54,"children":55},"element","h1",{"id":4},[56],{"type":57,"value":58},"text","Vapi Prompt Builder",{"type":52,"tag":60,"props":61,"children":63},"h2",{"id":62},"core-workflow",[64],{"type":57,"value":65},"Core Workflow",{"type":52,"tag":67,"props":68,"children":69},"p",{},[70],{"type":57,"value":71},"Use this skill to produce production-ready Vapi voice agent system prompts. Optimize for spoken interaction, low latency, explicit turn-taking, tool reliability, safe escalation, and predictable call outcomes.",{"type":52,"tag":67,"props":73,"children":74},{},[75],{"type":57,"value":76},"Start by classifying the request:",{"type":52,"tag":78,"props":79,"children":80},"ul",{},[81,87,92],{"type":52,"tag":82,"props":83,"children":84},"li",{},[85],{"type":57,"value":86},"Create: Build a new Vapi system prompt from a business goal or agent concept.",{"type":52,"tag":82,"props":88,"children":89},{},[90],{"type":57,"value":91},"Improve: Rewrite an existing prompt while preserving intended behavior.",{"type":52,"tag":82,"props":93,"children":94},{},[95],{"type":57,"value":96},"Audit: Review an existing prompt and return findings, gaps, and recommended changes.",{"type":52,"tag":67,"props":98,"children":99},{},[100],{"type":57,"value":101},"Then resolve deployment shape:",{"type":52,"tag":78,"props":103,"children":104},{},[105,110],{"type":52,"tag":82,"props":106,"children":107},{},[108],{"type":57,"value":109},"Single assistant: one Vapi assistant owns the call flow.",{"type":52,"tag":82,"props":111,"children":112},{},[113],{"type":57,"value":114},"Squad: multiple specialized assistants hand off between each other.",{"type":52,"tag":67,"props":116,"children":117},{},[118],{"type":57,"value":119},"If the request is ambiguous and the workflow may involve multiple specialized roles, routing, or handoffs, stop and ask: \"Should this be designed as one Vapi assistant, or as a Vapi Squad with multiple assistants and handoffs?\" Do not draft until this is resolved.",{"type":52,"tag":67,"props":121,"children":122},{},[123,125,132],{"type":57,"value":124},"Read ",{"type":52,"tag":126,"props":127,"children":129},"code",{"className":128},[],[130],{"type":57,"value":131},"references\u002Fsquad-prompting.md",{"type":57,"value":133}," when the user mentions squads, Handoff Tools, handoffs between assistants or squads, silent handoffs, dynamic routing, router\u002Ftriage assistants, specialist assistants, or a workflow that is too broad for one reliable prompt.",{"type":52,"tag":67,"props":135,"children":136},{},[137,139,145],{"type":57,"value":138},"Before writing or preserving workflow details, run a capability-grounding pass. Verify that every claimed input, artifact, tool action, side effect, and example is possible through the actual call channel, runtime context, visible Vapi tools, or explicitly described backend behavior. Read ",{"type":52,"tag":126,"props":140,"children":142},{"className":141},[],[143],{"type":57,"value":144},"references\u002Fcapability-grounding.md",{"type":57,"value":146}," when the prompt mentions files, uploads, attachments, documents, screenshots, browser\u002Fweb actions, async jobs, integrations, or any action the phone caller cannot perform directly during the call.",{"type":52,"tag":67,"props":148,"children":149},{},[150,151,157],{"type":57,"value":124},{"type":52,"tag":126,"props":152,"children":154},{"className":153},[],[155],{"type":57,"value":156},"references\u002Fvoice-prompt-patterns.md",{"type":57,"value":158}," when creating or substantially rewriting a prompt, or when the request involves voice style, examples, tool behavior, information collection, or call endings.",{"type":52,"tag":67,"props":160,"children":161},{},[162,164,170,172,178],{"type":57,"value":163},"Run an identifier-hygiene pass before finalizing. Read ",{"type":52,"tag":126,"props":165,"children":167},{"className":166},[],[168],{"type":57,"value":169},"references\u002Fidentifier-hygiene.md",{"type":57,"value":171}," when the prompt uses tool names, resource IDs, snake_case identifiers, placeholder names, or generic values such as ",{"type":52,"tag":126,"props":173,"children":175},{"className":174},[],[176],{"type":57,"value":177},"the_tool_name",{"type":57,"value":179},".",{"type":52,"tag":67,"props":181,"children":182},{},[183,185,191,193,199,201,207],{"type":57,"value":184},"Run a Vapi trust-boundary pass when the prompt, tools, or configuration mention authentication, caller identity, account IDs, permissions, secrets, secure values, verified values, static parameters, ",{"type":52,"tag":126,"props":186,"children":188},{"className":187},[],[189],{"type":57,"value":190},"function.parameters",{"type":57,"value":192},", dynamic variables, ",{"type":52,"tag":126,"props":194,"children":196},{"className":195},[],[197],{"type":57,"value":198},"variableExtractionPlan",{"type":57,"value":200},", tool aliases, handoff arguments, or sensitive tool responses. Read ",{"type":52,"tag":126,"props":202,"children":204},{"className":203},[],[205],{"type":57,"value":206},"references\u002Fvapi-security-trust.md",{"type":57,"value":208}," before recommending where those values belong.",{"type":52,"tag":67,"props":210,"children":211},{},[212,214,220],{"type":57,"value":213},"Run a Vapi readiness pass before presenting an artifact as ready to build or configure. Read ",{"type":52,"tag":126,"props":215,"children":217},{"className":216},[],[218],{"type":57,"value":219},"references\u002Fvapi-readiness.md",{"type":57,"value":221}," when the output includes tools, structured outputs, dynamic variables, Squads, handoffs, pronunciation guidance, testing\u002Fevals, or configuration notes. Separate confirmed Vapi configuration from assumptions and missing deployment inputs.",{"type":52,"tag":60,"props":223,"children":225},{"id":224},"intake",[226],{"type":57,"value":227},"Intake",{"type":52,"tag":67,"props":229,"children":230},{},[231],{"type":57,"value":232},"Ask the fewest questions needed to make a useful first draft. Prefer a complete draft with clear assumptions over a long upfront questionnaire.",{"type":52,"tag":67,"props":234,"children":235},{},[236],{"type":57,"value":237},"Always collect or infer:",{"type":52,"tag":78,"props":239,"children":240},{},[241,246,251,256,261,266,271,276,281,286,291,296,301,306,311,316],{"type":52,"tag":82,"props":242,"children":243},{},[244],{"type":57,"value":245},"Business or use case",{"type":52,"tag":82,"props":247,"children":248},{},[249],{"type":57,"value":250},"Deployment shape: single assistant or Squad",{"type":52,"tag":82,"props":252,"children":253},{},[254],{"type":57,"value":255},"Agent role and call objective",{"type":52,"tag":82,"props":257,"children":258},{},[259],{"type":57,"value":260},"Caller type and likely intents",{"type":52,"tag":82,"props":262,"children":263},{},[264],{"type":57,"value":265},"Success criteria",{"type":52,"tag":82,"props":267,"children":268},{},[269],{"type":57,"value":270},"Required workflows",{"type":52,"tag":82,"props":272,"children":273},{},[274],{"type":57,"value":275},"Handoff\u002Frouting boundaries when using a Squad",{"type":52,"tag":82,"props":277,"children":278},{},[279],{"type":57,"value":280},"Tools or actions the agent can use",{"type":52,"tag":82,"props":282,"children":283},{},[284],{"type":57,"value":285},"Tool schemas, structured outputs, and handoff destinations that are already known",{"type":52,"tag":82,"props":287,"children":288},{},[289],{"type":57,"value":290},"Model provider when Handoff Tool configuration patterns depend on it",{"type":52,"tag":82,"props":292,"children":293},{},[294],{"type":57,"value":295},"Which values are server-trusted, caller-spoken, tool-returned, LLM-derived, or security-sensitive",{"type":52,"tag":82,"props":297,"children":298},{},[299],{"type":57,"value":300},"How each required input becomes available to the agent or backend",{"type":52,"tag":82,"props":302,"children":303},{},[304],{"type":57,"value":305},"Human handoff or escalation rules",{"type":52,"tag":82,"props":307,"children":308},{},[309],{"type":57,"value":310},"Information the agent may collect",{"type":52,"tag":82,"props":312,"children":313},{},[314],{"type":57,"value":315},"Information the agent must not collect",{"type":52,"tag":82,"props":317,"children":318},{},[319],{"type":57,"value":320},"Tone, persona, and brand constraints",{"type":52,"tag":67,"props":322,"children":323},{},[324,325,331],{"type":57,"value":124},{"type":52,"tag":126,"props":326,"children":328},{"className":327},[],[329],{"type":57,"value":330},"references\u002Fintake-question-bank.md",{"type":57,"value":332}," when the request is vague, high-risk, or missing several essentials.",{"type":52,"tag":67,"props":334,"children":335},{},[336],{"type":57,"value":337},"If the user provides an existing prompt, inspect it before asking questions. Ask only about missing facts, contradictions, tool behavior, compliance constraints, or ambiguous handoff rules.",{"type":52,"tag":60,"props":339,"children":341},{"id":340},"prompt-sections",[342],{"type":57,"value":343},"Prompt Sections",{"type":52,"tag":67,"props":345,"children":346},{},[347],{"type":57,"value":348},"For a single assistant, generate or improve these sections unless the user asks for a narrower output:",{"type":52,"tag":350,"props":351,"children":352},"ol",{},[353,358,363,368,373,378,383,388,393,398,403],{"type":52,"tag":82,"props":354,"children":355},{},[356],{"type":57,"value":357},"Identity and purpose",{"type":52,"tag":82,"props":359,"children":360},{},[361],{"type":57,"value":362},"Personality and speaking style",{"type":52,"tag":82,"props":364,"children":365},{},[366],{"type":57,"value":367},"Response guidelines",{"type":52,"tag":82,"props":369,"children":370},{},[371],{"type":57,"value":372},"Guardrails and safety behavior",{"type":52,"tag":82,"props":374,"children":375},{},[376],{"type":57,"value":377},"Context and dynamic variables",{"type":52,"tag":82,"props":379,"children":380},{},[381],{"type":57,"value":382},"Workflow and intent routing",{"type":52,"tag":82,"props":384,"children":385},{},[386],{"type":57,"value":387},"Tool-use rules",{"type":52,"tag":82,"props":389,"children":390},{},[391],{"type":57,"value":392},"Error handling and recovery",{"type":52,"tag":82,"props":394,"children":395},{},[396],{"type":57,"value":397},"Smart information collection",{"type":52,"tag":82,"props":399,"children":400},{},[401],{"type":57,"value":402},"Escalation, transfer, and call ending",{"type":52,"tag":82,"props":404,"children":405},{},[406],{"type":57,"value":407},"Few-shot examples",{"type":52,"tag":67,"props":409,"children":410},{},[411],{"type":57,"value":412},"For a Squad, generate or improve:",{"type":52,"tag":350,"props":414,"children":415},{},[416,421,426,431,436,441,446,451,456],{"type":52,"tag":82,"props":417,"children":418},{},[419],{"type":57,"value":420},"Squad purpose and member map",{"type":52,"tag":82,"props":422,"children":423},{},[424],{"type":57,"value":425},"Entry assistant behavior",{"type":52,"tag":82,"props":427,"children":428},{},[429],{"type":57,"value":430},"One focused system prompt per assistant",{"type":52,"tag":82,"props":432,"children":433},{},[434],{"type":57,"value":435},"Handoff decision rules",{"type":52,"tag":82,"props":437,"children":438},{},[439],{"type":57,"value":440},"Context handoff requirements",{"type":52,"tag":82,"props":442,"children":443},{},[444],{"type":57,"value":445},"Tool boundaries per assistant",{"type":52,"tag":82,"props":447,"children":448},{},[449],{"type":57,"value":450},"Shared guardrails",{"type":52,"tag":82,"props":452,"children":453},{},[454],{"type":57,"value":455},"Per-assistant examples, including handoff examples",{"type":52,"tag":82,"props":457,"children":458},{},[459],{"type":57,"value":460},"External test scenarios for routing and context preservation",{"type":52,"tag":67,"props":462,"children":463},{},[464,466,472],{"type":57,"value":465},"For new prompts and substantial rewrites, include a compact ",{"type":52,"tag":126,"props":467,"children":469},{"className":468},[],[470],{"type":57,"value":471},"Examples",{"type":57,"value":473}," section inside the final Vapi system prompt unless the user explicitly asks to omit examples or there is a strong latency\u002Ftoken reason to keep the prompt minimal. Do not substitute external test scenarios for in-prompt examples.",{"type":52,"tag":67,"props":475,"children":476},{},[477],{"type":57,"value":478},"Keep the final system prompt lean. Do not include tutorial prose, rationale, or markdown intended for humans unless the user requests it. Use section headers only if they improve maintainability.",{"type":52,"tag":67,"props":480,"children":481},{},[482],{"type":57,"value":483},"Format the final prompt for fast model parsing, not as human-facing documentation:",{"type":52,"tag":78,"props":485,"children":486},{},[487,492,497,502,507],{"type":52,"tag":82,"props":488,"children":489},{},[490],{"type":57,"value":491},"Prefer compact bullets, numbered workflow steps, and short imperative rules over dense paragraphs.",{"type":52,"tag":82,"props":493,"children":494},{},[495],{"type":57,"value":496},"Keep each rule to one idea; split multi-clause paragraphs into separate rules.",{"type":52,"tag":82,"props":498,"children":499},{},[500],{"type":57,"value":501},"Use paragraphs only for brief identity\u002Fpersonality context, and keep them to one to three short sentences.",{"type":52,"tag":82,"props":503,"children":504},{},[505],{"type":57,"value":506},"Do not confuse prompt formatting with spoken output: markdown is acceptable inside the system prompt, but instruct the agent not to speak markdown, bullets, or numbered lists to callers.",{"type":52,"tag":82,"props":508,"children":509},{},[510],{"type":57,"value":511},"Before finalizing, compress any section that reads like explanatory prose into operational instructions.",{"type":52,"tag":60,"props":513,"children":515},{"id":514},"example-design",[516],{"type":57,"value":517},"Example Design",{"type":52,"tag":67,"props":519,"children":520},{},[521],{"type":57,"value":522},"Design in-prompt examples as behavioral training data for the voice agent:",{"type":52,"tag":78,"props":524,"children":525},{},[526,531,536,541,546,551,564,569],{"type":52,"tag":82,"props":527,"children":528},{},[529],{"type":57,"value":530},"Include at least three examples when the prompt covers a complete workflow: happy path, edge case, and error recovery.",{"type":52,"tag":82,"props":532,"children":533},{},[534],{"type":57,"value":535},"Cover each primary workflow when the agent has multiple high-value intents.",{"type":52,"tag":82,"props":537,"children":538},{},[539],{"type":57,"value":540},"Show realistic caller turns, concise assistant responses, tool calls, and tool outcomes.",{"type":52,"tag":82,"props":542,"children":543},{},[544],{"type":57,"value":545},"Include branching behavior for zero results, multiple results, invalid input, unclear speech, and tool failure when relevant.",{"type":52,"tag":82,"props":547,"children":548},{},[549],{"type":57,"value":550},"Ground every example in actual channel, runtime, tool, or backend capabilities.",{"type":52,"tag":82,"props":552,"children":553},{},[554,556,562],{"type":57,"value":555},"Use exact tool identifiers only in explicit ",{"type":52,"tag":126,"props":557,"children":559},{"className":558},[],[560],{"type":57,"value":561},"Tool Call:",{"type":57,"value":563}," lines or machine-facing configuration notes.",{"type":52,"tag":82,"props":565,"children":566},{},[567],{"type":57,"value":568},"Keep examples short enough to justify their latency cost.",{"type":52,"tag":82,"props":570,"children":571},{},[572],{"type":57,"value":573},"Use shape examples instead of repeating forbidden phrases, sensitive values, or unsupported artifacts.",{"type":52,"tag":67,"props":575,"children":576},{},[577],{"type":57,"value":578},"Keep external test scenarios separate from the final prompt. Test scenarios are for the human\u002Foperator to validate the prompt; examples are instructions embedded in the prompt for the model to imitate.",{"type":52,"tag":60,"props":580,"children":582},{"id":581},"voice-optimization",[583],{"type":57,"value":584},"Voice Optimization",{"type":52,"tag":67,"props":586,"children":587},{},[588],{"type":57,"value":589},"Before returning the final prompt, run a voice-agent pass:",{"type":52,"tag":78,"props":591,"children":592},{},[593,598,603,608,613,618,623,628,633,638],{"type":52,"tag":82,"props":594,"children":595},{},[596],{"type":57,"value":597},"Keep caller-facing turns short, usually one or two sentences.",{"type":52,"tag":82,"props":599,"children":600},{},[601],{"type":57,"value":602},"Ask one question at a time.",{"type":52,"tag":82,"props":604,"children":605},{},[606],{"type":57,"value":607},"Avoid numbered lists, bullets, markdown, and visual formatting in agent responses.",{"type":52,"tag":82,"props":609,"children":610},{},[611],{"type":57,"value":612},"Convert dates, phone numbers, currency, times, and URLs to spoken-friendly forms.",{"type":52,"tag":82,"props":614,"children":615},{},[616],{"type":57,"value":617},"Replace tool IDs, resource slugs, snake_case identifiers, and placeholder names in prose with natural capability descriptions.",{"type":52,"tag":82,"props":619,"children":620},{},[621],{"type":57,"value":622},"Add explicit rules for interruptions, silence, unclear input, and tool failures.",{"type":52,"tag":82,"props":624,"children":625},{},[626],{"type":57,"value":627},"Distinguish light banter from hard off-topic requests.",{"type":52,"tag":82,"props":629,"children":630},{},[631],{"type":57,"value":632},"Calibrate human-feel controls to the use case: all production agents need natural pacing, repair, and warmth; only add disfluency, banter, or personal rapport when they fit the persona and risk profile.",{"type":52,"tag":82,"props":634,"children":635},{},[636],{"type":57,"value":637},"Remove channel-impossible behaviors unless a tool or backend contract makes them real.",{"type":52,"tag":82,"props":639,"children":640},{},[641],{"type":57,"value":642},"Prefer deterministic Vapi configuration over prompt instructions when reliability or security matters.",{"type":52,"tag":60,"props":644,"children":646},{"id":645},"tool-and-configuration-notes",[647],{"type":57,"value":648},"Tool and Configuration Notes",{"type":52,"tag":67,"props":650,"children":651},{},[652],{"type":57,"value":653},"When tools are involved, review both prompt instructions and tool configuration. Flag items that should be configured outside the system prompt:",{"type":52,"tag":78,"props":655,"children":656},{},[657,662,667,672,677,682,687,692],{"type":52,"tag":82,"props":658,"children":659},{},[660],{"type":57,"value":661},"Tool descriptions should say when to call, when not to call, and required parameter formats.",{"type":52,"tag":82,"props":663,"children":664},{},[665],{"type":57,"value":666},"Prompt prose should describe tools by capability. Exact tool names belong only in tool-call examples, schemas, configuration notes, or Query Tool instructions where Vapi needs the system prompt to name the search tool.",{"type":52,"tag":82,"props":668,"children":669},{},[670],{"type":57,"value":671},"Do not invent deployable tool schemas, structured output schemas, enum values, server URLs, or handoff destinations. Ask for them or mark them as configuration needed.",{"type":52,"tag":82,"props":673,"children":674},{},[675],{"type":57,"value":676},"Transfer and end-call tools need explicit descriptions.",{"type":52,"tag":82,"props":678,"children":679},{},[680],{"type":57,"value":681},"Slow tools should use request-start messages to fill dead air.",{"type":52,"tag":82,"props":683,"children":684},{},[685],{"type":57,"value":686},"Pronunciation issues should use pronunciation dictionaries when available.",{"type":52,"tag":82,"props":688,"children":689},{},[690],{"type":57,"value":691},"Values that must be secure, verified, or impossible for the LLM to fake should use Vapi's server-side\u002Fstatic-parameter patterns, not prompt text or LLM-filled schemas.",{"type":52,"tag":82,"props":693,"children":694},{},[695],{"type":57,"value":696},"Tool responses should be short, structured, and limited to fields the model needs.",{"type":52,"tag":60,"props":698,"children":700},{"id":699},"output-modes",[701],{"type":57,"value":702},"Output Modes",{"type":52,"tag":67,"props":704,"children":705},{},[706],{"type":57,"value":707},"For a new prompt, return:",{"type":52,"tag":78,"props":709,"children":710},{},[711,716,721,726,731],{"type":52,"tag":82,"props":712,"children":713},{},[714],{"type":57,"value":715},"Brief assumptions, if any",{"type":52,"tag":82,"props":717,"children":718},{},[719],{"type":57,"value":720},"Final Vapi system prompt, or Squad prompt set when using a Squad",{"type":52,"tag":82,"props":722,"children":723},{},[724],{"type":57,"value":725},"Suggested Vapi configuration notes, if relevant",{"type":52,"tag":82,"props":727,"children":728},{},[729],{"type":57,"value":730},"Configuration needed or blocking questions, if deployment-critical details are missing",{"type":52,"tag":82,"props":732,"children":733},{},[734],{"type":57,"value":735},"External test scenarios, separate from the prompt",{"type":52,"tag":67,"props":737,"children":738},{},[739],{"type":57,"value":740},"For an improved prompt, return:",{"type":52,"tag":78,"props":742,"children":743},{},[744,749,754,759,763],{"type":52,"tag":82,"props":745,"children":746},{},[747],{"type":57,"value":748},"Final revised prompt, or revised Squad prompt set when using a Squad",{"type":52,"tag":82,"props":750,"children":751},{},[752],{"type":57,"value":753},"Important changes made",{"type":52,"tag":82,"props":755,"children":756},{},[757],{"type":57,"value":758},"Remaining questions or risks",{"type":52,"tag":82,"props":760,"children":761},{},[762],{"type":57,"value":730},{"type":52,"tag":82,"props":764,"children":765},{},[766],{"type":57,"value":735},{"type":52,"tag":67,"props":768,"children":769},{},[770],{"type":57,"value":771},"For an audit, return:",{"type":52,"tag":78,"props":773,"children":774},{},[775,780,785,790],{"type":52,"tag":82,"props":776,"children":777},{},[778],{"type":57,"value":779},"Findings ordered by severity",{"type":52,"tag":82,"props":781,"children":782},{},[783],{"type":57,"value":784},"Missing or weak prompt sections",{"type":52,"tag":82,"props":786,"children":787},{},[788],{"type":57,"value":789},"Vapi configuration concerns",{"type":52,"tag":82,"props":791,"children":792},{},[793],{"type":57,"value":794},"Concrete rewrite recommendations",{"type":52,"tag":67,"props":796,"children":797},{},[798,799,805],{"type":57,"value":124},{"type":52,"tag":126,"props":800,"children":802},{"className":801},[],[803],{"type":57,"value":804},"references\u002Freview-checklist.md",{"type":57,"value":806}," before finalizing an audit or substantial rewrite.",{"items":808,"total":937},[809,826,838,849,863,875,888,902,915,930],{"slug":8,"name":8,"fn":810,"description":811,"org":812,"tags":813,"stars":823,"repoUrl":824,"updatedAt":825},"build AI voice assistants with Vapi","Build AI voice assistants and phone agents with Vapi. Use this skill when users want to create voice agents, phone bots, IVR systems, outbound calling campaigns, or any voice-based AI application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[814,815,818,819,822],{"name":18,"slug":19,"type":16},{"name":816,"slug":817,"type":16},"Automation","automation",{"name":24,"slug":25,"type":16},{"name":820,"slug":821,"type":16},"Text-to-Speech","text-to-speech",{"name":21,"slug":22,"type":16},56,"https:\u002F\u002Fgithub.com\u002FVapiAI\u002Fmcp-server","2026-07-17T06:06:13.535114",{"slug":827,"name":827,"fn":828,"description":829,"org":830,"tags":831,"stars":26,"repoUrl":27,"updatedAt":837},"create-assistant","create Vapi voice AI assistants","Create Vapi voice AI assistant payloads or assistants through the Vapi API. Use when building phone or web call agents, generating assistant JSON, choosing safe default model\u002Fvoice\u002Ftranscriber settings, attaching existing Vapi tool IDs, adding assistant hooks, configuring HIPAA\u002Fcompliance only when explicitly requested, or fixing Vapi assistant API validation errors.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[832,833,836],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},"API Development","api-development",{"name":21,"slug":22,"type":16},"2026-07-20T05:57:28.680409",{"slug":839,"name":839,"fn":840,"description":841,"org":842,"tags":843,"stars":26,"repoUrl":27,"updatedAt":848},"create-call","create automated phone calls with Vapi","Create outbound phone calls, web calls, and batch calls using the Vapi API. Use when making automated calls, testing voice assistants, scheduling call campaigns, or initiating conversations programmatically.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[844,845,846,847],{"name":18,"slug":19,"type":16},{"name":816,"slug":817,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},"2026-07-20T05:57:32.68652",{"slug":850,"name":850,"fn":851,"description":852,"org":853,"tags":854,"stars":26,"repoUrl":27,"updatedAt":862},"create-phone-number","manage Vapi phone numbers","Set up and manage phone numbers in Vapi for inbound and outbound voice AI calls. Use when importing Twilio, Vonage, or Telnyx numbers, buying Vapi numbers, or configuring phone numbers for assistants.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[855,858,861],{"name":856,"slug":857,"type":16},"Operations","operations",{"name":859,"slug":860,"type":16},"Twilio","twilio",{"name":21,"slug":22,"type":16},"2026-07-20T05:57:29.699227",{"slug":864,"name":864,"fn":865,"description":866,"org":867,"tags":868,"stars":26,"repoUrl":27,"updatedAt":874},"create-squad","create multi-assistant voice agent squads","Create multi-assistant squads in Vapi with handoffs between specialized voice agents. Use when building complex voice workflows that need multiple assistants with different roles, like triage-to-booking or sales-to-support handoffs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[869,870,873],{"name":18,"slug":19,"type":16},{"name":871,"slug":872,"type":16},"Multi-Agent","multi-agent",{"name":21,"slug":22,"type":16},"2026-07-20T05:57:30.690452",{"slug":876,"name":876,"fn":877,"description":878,"org":879,"tags":880,"stars":26,"repoUrl":27,"updatedAt":887},"create-tool","create custom tools for Vapi assistants","Create custom tools for Vapi voice assistants including function tools, API request tools, transfer call tools, end call tools, and integrations with Google Calendar, Sheets, Slack, and more. Use when adding capabilities to voice agents, building tool servers, or integrating external APIs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[881,882,883,884],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},{"name":816,"slug":817,"type":16},{"name":885,"slug":886,"type":16},"Integrations","integrations","2026-07-20T05:57:27.69122",{"slug":889,"name":889,"fn":890,"description":891,"org":892,"tags":893,"stars":26,"repoUrl":27,"updatedAt":901},"setup-api-key","configure Vapi API authentication","Guide users through obtaining and configuring a Vapi API key. Use when the user needs to set up Vapi, when API calls fail due to missing keys, or when the user mentions needing access to Vapi's voice AI platform.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[894,895,898],{"name":834,"slug":835,"type":16},{"name":896,"slug":897,"type":16},"Auth","auth",{"name":899,"slug":900,"type":16},"Configuration","configuration","2026-07-20T05:57:25.717229",{"slug":903,"name":903,"fn":904,"description":905,"org":906,"tags":907,"stars":26,"repoUrl":27,"updatedAt":914},"setup-webhook","configure Vapi webhooks for call events","Configure Vapi server URLs and webhooks to receive real-time call events, transcripts, tool calls, and end-of-call reports. Use when setting up webhook endpoints, building tool servers, or integrating Vapi events into your application.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[908,909,910,911],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},{"name":816,"slug":817,"type":16},{"name":912,"slug":913,"type":16},"Webhooks","webhooks","2026-07-20T05:57:31.703006",{"slug":916,"name":916,"fn":917,"description":918,"org":919,"tags":920,"stars":26,"repoUrl":27,"updatedAt":929},"vapi-bootstrap-framework","scaffold Vapi voice agent projects","Scaffold a complete Vapi voice-agent project from a ROUGH_DRAFT.md spec. Generates package.json, tsconfig.json, .env.example, .gitignore, and the full TypeScript framework — scenario registry, per-language voice\u002Ftranscriber stack, prompt composer, assistant builder, and an idempotent bootstrap script — plus one rough first-draft body.md per scenario. Drop this skill in any project's .cursor\u002Fskills\u002F folder (or ~\u002F.cursor\u002Fskills\u002F for global use), write a ROUGH_DRAFT.md at the project root, name the skill, and `bun run bootstrap` puts the entire fleet live in dashboard.vapi.ai. Use when the user asks to scaffold or bootstrap Vapi voice agents from a rough draft, build a Vapi assistant fleet, or invokes this skill by name. Targets Bun + TypeScript + @vapi-ai\u002Fserver-sdk.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[921,922,925,928],{"name":18,"slug":19,"type":16},{"name":923,"slug":924,"type":16},"Engineering","engineering",{"name":926,"slug":927,"type":16},"TypeScript","typescript",{"name":21,"slug":22,"type":16},"2026-07-20T05:57:26.732699",{"slug":4,"name":4,"fn":5,"description":6,"org":931,"tags":932,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[933,934,935,936],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},10,{"items":939,"total":985},[940,946,953,959,965,972,978],{"slug":827,"name":827,"fn":828,"description":829,"org":941,"tags":942,"stars":26,"repoUrl":27,"updatedAt":837},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[943,944,945],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},{"name":21,"slug":22,"type":16},{"slug":839,"name":839,"fn":840,"description":841,"org":947,"tags":948,"stars":26,"repoUrl":27,"updatedAt":848},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[949,950,951,952],{"name":18,"slug":19,"type":16},{"name":816,"slug":817,"type":16},{"name":24,"slug":25,"type":16},{"name":21,"slug":22,"type":16},{"slug":850,"name":850,"fn":851,"description":852,"org":954,"tags":955,"stars":26,"repoUrl":27,"updatedAt":862},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[956,957,958],{"name":856,"slug":857,"type":16},{"name":859,"slug":860,"type":16},{"name":21,"slug":22,"type":16},{"slug":864,"name":864,"fn":865,"description":866,"org":960,"tags":961,"stars":26,"repoUrl":27,"updatedAt":874},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[962,963,964],{"name":18,"slug":19,"type":16},{"name":871,"slug":872,"type":16},{"name":21,"slug":22,"type":16},{"slug":876,"name":876,"fn":877,"description":878,"org":966,"tags":967,"stars":26,"repoUrl":27,"updatedAt":887},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[968,969,970,971],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},{"name":816,"slug":817,"type":16},{"name":885,"slug":886,"type":16},{"slug":889,"name":889,"fn":890,"description":891,"org":973,"tags":974,"stars":26,"repoUrl":27,"updatedAt":901},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[975,976,977],{"name":834,"slug":835,"type":16},{"name":896,"slug":897,"type":16},{"name":899,"slug":900,"type":16},{"slug":903,"name":903,"fn":904,"description":905,"org":979,"tags":980,"stars":26,"repoUrl":27,"updatedAt":914},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[981,982,983,984],{"name":18,"slug":19,"type":16},{"name":834,"slug":835,"type":16},{"name":816,"slug":817,"type":16},{"name":912,"slug":913,"type":16},9]