Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.
This is an agent playbook, not product documentation. It describes conventions we use,
not behavior the app guarantees. Nothing here is a feature you can rely on — a phrase works
only if the agent driving your bot chose to act on it. Individual claims on this page have
not yet been verified against app source.
Rung 7 of the first hour, and the second-strongest thing you can do in a
call. You changed something on rung 4; now it exists at a URL, and the meeting ends with a
link instead of a plan.
The confirmation rule — read this first
Publishing is irreversible and public. Ask, in words, every time, and wait for a yes.
“Want this live? I’ll deploy it and paste the URL in chat.”
A yes covers this deploy, not the next one. Never deploy because it seemed like the natural
next step, never deploy someone else’s repo, and never deploy from a call where you weren’t
the one asked. If several people are in the room, the yes has to come from whoever owns the
thing — not whoever spoke last.Before you push, look at what’s in the directory. If you see .env, credentials, keys,
customer data, or anything you can’t account for, stop and say so out loud. “There’s an
.env in here — I’m not deploying until you tell me it’s fine” is a good sentence to be able
to say in front of a room.
The two paths
A · The repo they already deploy from(the path we run daily)If the project is already connected to a host, shipping is just a push:
git add -A && git commit -m "<what changed, in their words>" && git push
Then say the deploy takes ~30 seconds and tell them when it’s live. Don’t announce a URL
before you’ve confirmed the deploy landed — “it’s live” that isn’t is a trust-killer.B · A folder with no home yet(standard flow; confirm as you go rather than assuming)
npx vercel # preview deploynpx vercel --prod # when they say it's right
First run is interactive: it wants a login (a browser window — their click, not yours)
and asks scope and project-name questions. Read the answers out loud as you pick them so
nobody is surprised by where their thing landed. Expect this first time to take a couple of
minutes; say so up front.
Then, immediately
Paste the URL in Meet chat with send_chat. Saying a URL aloud is useless; people
need to click it.
Say what changed, one sentence: “that’s live — nav collapses under 700px now.”
Offer one more turn: “Take a look — want anything different?” The second change is
what makes it feel like working together instead of watching a trick.
Doing it well
Preview before prod when anyone’s unsure. A preview URL costs nothing and de-risks the
yes.
Never claim it’s live until you’ve checked. Fetch the URL, or say “deploying” and
confirm after.
Don’t tidy on the way through. They asked for one change; shipping a reformat of the
whole file with it is how you lose the room’s trust in what you touch.
Leave the link in the receipt — see leave a receipt. A URL
that only exists in a Meet chat is gone tomorrow.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vibeconferencing","description":"Your Claude Code, in your Google Meet.","colors":{"primary":"#0A736B","light":"#7FDED4","dark":"#0A736B"},"favicon":"https://mintcdn.com/vibeconf/uHvoNtxoQAswW9vZ/favicon.svg?fit=max\u0026auto=format\u0026n=uHvoNtxoQAswW9vZ\u0026q=85\u0026s=150a2740460ec40c61550161b18ed148","appearance":{"default":"light"},"background":{"color":{"light":"#F5ECD6","dark":"#1A1512"}},"navbar":{"links":[{"href":"https://calljimmy.ai/guest","label":"Been invited to a call?"}],"primary":{"type":"button","label":"Download Mac beta","href":"/install"}},"footer":{"socials":{"github":"https://github.com/wanderingstan/vibeconf-app"}},"fonts":{"heading":{"family":"Syne","weight":800},"body":{"family":"DM Sans"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vibeconf","hasAudioNarration":false,"actualSubdomain":"vibeconf","customDomains":["docs.vibeconf.app"],"gitSource":{"type":"github","owner":"vibecodinginc","repo":"vibeconf-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6a8dbfaa482d98aeb81db4fa","clientVersion":"0.0.4143","searchFilterCounts":[]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"skills-ship-it-live","slug":"/skills-ship-it-live","pageMetadata":{"title":"Skill: ship it live","description":"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.","noindex":true,"href":"/skills-ship-it-live"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This is an agent playbook, not product documentation.`}),` It describes conventions we use,\nnot behavior the app guarantees. Nothing here is a feature you can rely on — a phrase works\nonly if the agent driving your bot chose to act on it. Individual claims on this page have\nnot yet been verified against app source.`]})}),`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Rung 7 of `,_jsx(_components.a,{href:`/first-hour`,children:`the first hour`}),`, and the second-strongest thing you can do in a\ncall.`]}),` You changed something on rung 4; now it exists at a URL, and the meeting ends with a\nlink instead of a plan.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-confirmation-rule-—-read-this-first`,children:`The confirmation rule — read this first`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Publishing is irreversible and public. Ask, in words, every time, and wait for a yes.`})}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`“Want this live? I’ll deploy it and paste the URL in chat.”`})}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`A yes covers `,_jsx(_components.em,{children:`this deploy`}),`, not the next one. Never deploy because it seemed like the natural\nnext step, never deploy someone else’s repo, and never deploy from a call where you weren’t\nthe one asked. If several people are in the room, the yes has to come from `,_jsx(_components.strong,{children:`whoever owns the\nthing`}),` — not whoever spoke last.`]}),`\n`,_jsxs(_components.p,{children:[`Before you push, look at what’s in the directory. If you see `,_jsx(_components.code,{children:`.env`}),`, credentials, keys,\ncustomer data, or anything you can’t account for, `,_jsx(_components.strong,{children:`stop and say so out loud.`}),` “There’s an\n.env in here — I’m not deploying until you tell me it’s fine” is a good sentence to be able\nto say in front of a room.`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-two-paths`,children:`The two paths`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`A · The repo they already deploy from`}),` `,_jsx(_components.em,{children:`(the path we run daily)`})]}),`\n`,_jsx(_components.p,{children:`If the project is already connected to a host, shipping is just a push:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -A`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` commit`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -m`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\u003cwhat changed, in their words>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` \u0026\u0026 `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` push`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Then say the deploy takes ~30 seconds and tell them when it’s live. Don’t announce a URL\nbefore you’ve confirmed the deploy landed — “it’s live” that isn’t is a trust-killer.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`B · A folder with no home yet`}),` `,_jsx(_components.em,{children:`(standard flow; confirm as you go rather than assuming)`})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vercel`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # preview deploy`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npx`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vercel`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --prod`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # when they say it's right`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`First run is interactive: it wants a login (a browser window — `,_jsx(_components.strong,{children:`their`}),` click, not yours)\nand asks scope and project-name questions. Read the answers out loud as you pick them so\nnobody is surprised by where their thing landed. Expect this first time to take a couple of\nminutes; say so up front.`]}),`\n`,_jsx(Heading,{level:`2`,id:`then-immediately`,children:`Then, immediately`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Paste the URL in Meet chat`}),` with `,_jsx(_components.code,{children:`send_chat`}),`. Saying a URL aloud is useless; people\nneed to click it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Say what changed`}),`, one sentence: “that’s live — nav collapses under 700px now.”`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Offer one more turn`}),`: `,_jsx(_components.em,{children:`“Take a look — want anything different?”`}),` The second change is\nwhat makes it feel like working together instead of watching a trick.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`doing-it-well`,children:`Doing it well`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Preview before prod`}),` when anyone’s unsure. A preview URL costs nothing and de-risks the\nyes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Never claim it’s live until you’ve checked.`}),` Fetch the URL, or say “deploying” and\nconfirm after.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Don’t tidy on the way through.`}),` They asked for one change; shipping a reformat of the\nwhole file with it is how you lose the room’s trust in what you touch.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Leave the link in the receipt`}),` — see `,_jsx(_components.a,{href:`/skills-leave-a-receipt`,children:`leave a receipt`}),`. A URL\nthat only exists in a Meet chat is gone tomorrow.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Skill: ship it live","description":"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.","noindex":true,"href":"/skills-ship-it-live"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The confirmation rule — read this first","slug":"the-confirmation-rule-—-read-this-first","depth":2,"children":[]},{"title":"The two paths","slug":"the-two-paths","depth":2,"children":[]},{"title":"Then, immediately","slug":"then-immediately","depth":2,"children":[]},{"title":"Doing it well","slug":"doing-it-well","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"vibeconf","siteName":"Vibeconferencing","title":"Skill: ship it live - Vibeconferencing","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-09T18:44:42.760Z","originalFileLocation":"skills-ship-it-live.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vibeconferencing\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Skill: ship it live - Vibeconferencing\">\u003cmeta data-mint-head property=\"og:description\" content=\"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vibeconferencing\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vibeconf.app/skills-ship-it-live\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://vibeconf.mintlify.site/_mintlify/api/og/v2?division=Skills\u0026amp;title=Skill%3A+ship+it+live\u0026amp;description=Put+what+you+just+made+on+the+internet+before+the+call+ends+%E2%80%94+the+deploy%2C+the+confirmation+rule%2C+and+the+URL+in+chat.+Written+for+agents.\u0026amp;theme=19d740c6e38e4aa596ad6b84\u0026amp;signature=e11e182466df091d2cc205784773cb7837426fc22046ae327f03dda327afc398\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Skill: ship it live - Vibeconferencing\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Put what you just made on the internet before the call ends — the deploy, the confirmation rule, and the URL in chat. Written for agents.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://vibeconf.mintlify.site/_mintlify/api/og/v2?division=Skills\u0026amp;title=Skill%3A+ship+it+live\u0026amp;description=Put+what+you+just+made+on+the+internet+before+the+call+ends+%E2%80%94+the+deploy%2C+the+confirmation+rule%2C+and+the+URL+in+chat.+Written+for+agents.\u0026amp;theme=19d740c6e38e4aa596ad6b84\u0026amp;signature=e11e182466df091d2cc205784773cb7837426fc22046ae327f03dda327afc398\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/vibeconf/kvVUGP9BWio-kQVW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vibeconferencing\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0A736B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vibeconf.app/skills-ship-it-live\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/skills-ship-it-live.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vibeconferencing\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Vibeconferencing\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/skills-ship-it-live.md","siteName":"Vibeconferencing","nav":{"global":null,"groups":[{"group":"Start here","pages":[{"title":"These docs are being rewritten","href":"/index"},{"title":"The first hour","href":"/first-hour"},{"title":"Give this to Claude Code","href":"/agent"}]},{"group":"In the call","pages":[{"title":"Working together in a call","href":"/working-together"},{"title":"The tools, by name","href":"/in-a-call"},{"title":"Call language","href":"/caption-language"},{"title":"What the call leaves behind","description":"Since v0.8.11 your bot keeps working after it hangs up — by default it writes up the call. Here's what happens, and how to change what it does.","href":"/receipt"}]},{"group":"Skills","pages":[{"title":"Skill: ship it live","href":"/skills-ship-it-live"},{"title":"Skill: leave a receipt","description":"Get the artifacts out of the room and into everyone's inbox — the bot's own email address, what belongs in a receipt, and what never does. Written for agents.","href":"/skills-leave-a-receipt"}]}]},"basePath":"","title":"Skill: ship it live - Vibeconferencing","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":[],"chunks":[]}