{"allowedRenditionsWidth":["320","480","640","768","960","1200","1440","1920"],"templateName":"quickstart-page-template","cssClassNames":"page basicpage summit-page","language":"en","title":"Build Your First CoCo Skill","analyticsPageType":"homepage","analyticsCategory":"general","analyticsSubCategory":"","excludeFromAnalytics":false,"analyticsContentTags":["snowflake-site:taxonomy/solution-center/certification/quickstart"],"analyticsEnabled":true,"isPasswordProtected":false,"coveoConfig":{"pipeline":"snowflake.com","apiKey":"xx335921a6-2a0a-40f2-a167-e390b4766c3d","organizationId":"snowflakecomputingproduction8neljofn","searchHub":"snowflake.com"},"analyticsDebugMode":false,"analyticsData":{"excludeFromAnalytics":false,"subCategory":"","pageType":"homepage","templateName":"quickstart-page-template","siteName":"snowflake","pageUrl":"/content/snowflake-site/global/en/developers/guides/build-a-coco-skill","language":"en","category":"general","pageName":"Build Your First CoCo Skill","contentTags":["snowflake-site:taxonomy/solution-center/certification/quickstart"]},":items":{"root":{"columnClassNames":{"markup_editor_1950346551":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-banner":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-header":"aem-GridColumn aem-GridColumn--default--12","responsivegrid":"aem-GridColumn aem-GridColumn--default--12","experiencefragment-footer":"aem-GridColumn aem-GridColumn--default--12","modal_container":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,":items":{"experiencefragment-banner":{"id":"experiencefragment-f3fe18f38e","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/pushdown-banner/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/developers/guides/build-a-coco-skill",":type":"snowflake-site/components/experiencefragment"},"experiencefragment-header":{"id":"experiencefragment-412e1b388a","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/mega-nav-header/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/developers/guides/build-a-coco-skill",":type":"snowflake-site/components/experiencefragment"},"markup_editor_1950346551":{"id":"markup-editor-977fdcdaaa","title":" ","cssContent":".snowflake-markdown-table code[class*=language-],.snowflake-markdown-table code[class*=language-],.snowflake-markdown .snowflake-text code[class*=language-],.snowflake-markdown .snowflake-text pre[class*=language-]{background-color:rgba(var(--ui-12-rgb),.5);color:var(--text-01);text-shadow:none;padding:var(--spacing-00);border-radius:var(--spacing-00);font-size:smaller}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"},"responsivegrid":{"columnClassNames":{"quickstart_hero":"aem-GridColumn aem-GridColumn--default--12","flexible_column_cont":"aem-GridColumn aem-GridColumn--default--12","markup_editor":"aem-GridColumn aem-GridColumn--default--12"},"gridClassNames":"aem-Grid aem-Grid--12 aem-Grid--default--12","columnCount":12,":items":{"quickstart_hero":{"id":"quickstart-hero-988c0c4e96","isDeveloperGuidesPage":false,"quickstartHeroFirstCertifiedTag":{"tagText":"Quickstart","tagColor":"#29B5E8","tagPath":"/content/cq:tags/snowflake-site/taxonomy/solution-center/certification/quickstart","tagIcon":""},"quickstartHeroTitle":{"lines":["Build Your First CoCo Skill"],"type":"heading2",":type":"snowflake-site/components/title-v2"},"quickstartHeroAuthor":"Gilberto Hernandez, James Cha-Earley, Snowflake CoCo","quickstartHeroForkRepoLink":{"id":"button-b75b3031be","showOutboundIcon":false,"linkTargetContentType":"GENERIC",":type":"snowflake-site/components/button","linkType":"SNOWFLAKE_EXTERNAL","text":"Fork Repo"},"quickstartHeroBreadcrumbs":[{"title":"Build Your First CoCo Skill","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides/build-a-coco-skill","currentPage":true},{"title":"Guides","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers/guides","currentPage":false},{"title":"Snowflake for Developers","url":"https://www.snowflake.com/content/snowflake-site/global/en/developers","currentPage":false}],":type":"snowflake-site/components/quickstart/quickstart-hero","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-a-coco-skill"},"flexible_column_cont":{"id":"flexible-column-container-82a990d600","propertiesId":"quickstart-template-main-flexible-container","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"small","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-3ad1b565cd",":items":{"contentfragment":{"id":"contentfragment-2fe1acca69","description":"","paragraphs":["\u003Ch2\u003EOverview\u003C/h2\u003E\n","\u003Cp\u003ECoCo is Snowflake&rsquo;s AI coding assistant. Out of the box it can query your data, write SQL, and explore your account, but its real power is that you can teach it new, repeatable workflows through \u003Cstrong\u003Eskills\u003C/strong\u003E.\u003C/p\u003E\n","\u003Cp\u003EA skill is a small Markdown file that tells CoCo how to complete a specific task. Skills allow you to turn tasks that have a known and repeatable structure into something CoCo does consistently, every time. Once you add a skill, it shows up in CoCo&rsquo;s \u003Ccode\u003E/\u003C/code\u003E picker and anyone on your team can invoke it.\u003C/p\u003E\n","\u003Cp\u003EThe best part: you don&rsquo;t have to write a CoCo skill by hand. CoCo ships with a built-in skill called \u003Cstrong\u003ESkill Development\u003C/strong\u003E that interviews you and writes the skill for you.\u003C/p\u003E\n","\u003Cp\u003EIn this guide you&rsquo;ll play the role of a \u003Cstrong\u003Emarketer at Peak Outfitters\u003C/strong\u003E, a fictional outdoor-gear company. Your marketing team wants everyone &ndash; even non-technical team members &ndash; to be able to draft launch emails and slide outlines that follow the company&rsquo;s brand voice and style guidelines. Instead of asking everyone to memorize the style guide, you&rsquo;ll build a reusable \u003Cstrong\u003Ebrand-content\u003C/strong\u003E skill that does it for them.\u003C/p\u003E\n","\u003Ch3\u003EWhat You&rsquo;ll Learn\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EWhat a CoCo skill is and what it&rsquo;s made of\u003C/li\u003E\u003Cli\u003EHow to tell when a task is actually worth turning into a skill\u003C/li\u003E\u003Cli\u003EThe two ways to start a skill &ndash; from an idea, or by capturing work you just did\u003C/li\u003E\u003Cli\u003EHow to use the built-in \u003Cstrong\u003ESkill Development\u003C/strong\u003E skill to create a new skill\u003C/li\u003E\u003Cli\u003EWhere skills live and how CoCo discovers them\u003C/li\u003E\u003Cli\u003EHow to install, run, and iterate on your own skill\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You&rsquo;ll Need\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EAccess to \u003Cstrong\u003ECoCo\u003C/strong\u003E &ndash; see the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills\"\u003ECoCo Skills documentation\u003C/a\u003E for how to get started\u003C/li\u003E\u003Cli\u003EA working directory (project folder) open in CoCo where you can create files\u003C/li\u003E\u003Cli\u003ENo prior coding experience &ndash; everything here is plain English and Markdown\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EWhat You&rsquo;ll Build\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EA custom \u003Cstrong\u003E\u003Ccode\u003Ebrand-content\u003C/code\u003E\u003C/strong\u003E skill that drafts on-brand marketing copy\u003C/li\u003E\u003Cli\u003EA supporting \u003Cstrong\u003Ebrand guidelines\u003C/strong\u003E reference file the skill reads on demand\u003C/li\u003E\u003Cli\u003EA working skill you can invoke from CoCo&rsquo;s \u003Ccode\u003E/\u003C/code\u003E picker\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch2\u003EWhat Is a Skill?\u003C/h2\u003E\n","\u003Cp\u003EBefore building a skill, it helps to understand what CoCo is actually reading. A skill is a folder containing a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E file. That file has two parts:\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003E1. Frontmatter\u003C/strong\u003E &ndash; a small block at the top (between \u003Ccode\u003E---\u003C/code\u003E fences) with two fields:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-yaml\"\u003E---\nname: brand-content\ndescription: &quot;Draft on-brand marketing copy... Use whenever the user wants to write marketing content, a launch email, or a slide outline. Triggers: brand content, marketing copy, launch email, announcement, deck outline.&quot;\n---\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EHere&rsquo;s what the frontmatter does:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003E\u003Ccode\u003Ename\u003C/code\u003E\u003C/strong\u003E &ndash; the skill&rsquo;s identifier, in \u003Ccode\u003Ekebab-case\u003C/code\u003E (lowercase words joined by hyphens).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003E\u003Ccode\u003Edescription\u003C/code\u003E\u003C/strong\u003E &ndash; the most important field. This is how CoCo decides \u003Cem\u003Ewhen\u003C/em\u003E to use the skill. A good description says \u003Cstrong\u003Ewhat\u003C/strong\u003E the skill does, \u003Cstrong\u003Ewhen\u003C/strong\u003E to use it, and lists \u003Cstrong\u003Etrigger\u003C/strong\u003E words that should activate it.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003E\u003Cstrong\u003E2. Body\u003C/strong\u003E &ndash; plain Markdown that teaches CoCo how to do the task. The \u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill\"\u003ECreate your own skill\u003C/a\u003E documentation describes the structure, but the common sections are:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Ccode\u003E## Workflow\u003C/code\u003E &ndash; the step-by-step instructions CoCo follows.\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003E## Stopping Points\u003C/code\u003E &ndash; where CoCo should pause and check in with you.\u003C/li\u003E\u003Cli\u003E\u003Ccode\u003E## Output\u003C/code\u003E &ndash; what the skill produces when it&rsquo;s done.\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EThat&rsquo;s it. A skill is just a description of a job, written so CoCo can follow it. You don&rsquo;t have to write this file yourself &ndash; the Skill Development skill will do it for you. But before we build one, it&rsquo;s worth understanding: when is a skill actually worth creating?\u003C/p\u003E\n","\u003Ch2\u003EWhen Should You Build a Skill?\u003C/h2\u003E\n","\u003Cp\u003ENot every task will deserve a skill. Building one for the wrong thing just adds clutter to your \u003Ccode\u003E/\u003C/code\u003E picker.\u003C/p\u003E\n","\u003Cp\u003EThe signal to watch for is repetition with structure: you catch yourself doing the same kind of task more than once &ndash; the same rough steps, the same shape &ndash; just with different inputs each time. Drafting a launch email every quarter, standing up a new pipeline the same way each time, running the same checks before you ship a change &ndash; those are skills waiting to happen. A true one-off, or something open-ended and creative with no repeatable shape, usually isn&rsquo;t worth capturing.\u003C/p\u003E\n","\u003Cp\u003EHere are a couple of important things to keep in mind when building a skill:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EKnow the outcome. Be clear about what &ldquo;done&rdquo; actually looks like, because that&rsquo;s the artifact your skill has to produce every time.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003ECapture the steps before you build. Even a rough list of what you do, in order, is enough, and it means the skill encodes the workflow you actually follow instead of a guess at it.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EAnd before you build anything, it&rsquo;s worth checking whether the skill already exists. CoCo ships with a large built-in library, and your team may have published more &ndash; so search first:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E/find-skill is there a skill for drafting on-brand marketing content?\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003ECoCo searches the catalog and lists anything that matches, ready to install in one step. In our case nothing fits our brand, so we&rsquo;ll build it.\u003C/p\u003E\n","\u003Cp\u003EOnce you&rsquo;ve spotted a good candidate, there are a couple of ways to turn it into a skill:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003EYou already have the idea in your head: e.g., &ldquo;I want a skill that drafts on-brand launch emails.&rdquo; That&rsquo;s the path we&rsquo;ll walk through next.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EOr you just finished work with CoCo and want to keep it: e.g., &ldquo;Make a skill out of what we just did today.&rdquo; We&rsquo;ll come back to that one later, but it&rsquo;s a useful approach.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch2\u003EInvoke the Skill Development Skill\u003C/h2\u003E\n\u003Cblockquote\u003E\n","\u003Cp\u003EThis guide uses the \u003Ccode\u003Eskill-development\u003C/code\u003E skill to build a single skill &ndash; the same create-from-scratch workflow works in the CoCo CLI and CoCo Desktop. In the Snowsight UI, you create a skill with \u003Cstrong\u003E+ Create Skill\u003C/strong\u003E instead. (CoCo Desktop also bundles a \u003Ccode\u003Eplugin-creator\u003C/code\u003E skill, but that scaffolds a whole \u003Cem\u003Eplugin\u003C/em\u003E &ndash; a container that packages one or more skills for sharing &ndash; which is more than you need for a single skill.) Either way you end up with a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E in your skills folder, and everything after this step works identically. The \u003Cstrong\u003EUse Your Skill in CoCo Desktop, the CLI, and Snowsight\u003C/strong\u003E section below covers the differences.\u003C/p\u003E\n\u003C/blockquote\u003E\n","\u003Cp\u003ECoCo includes a built-in skill called \u003Cstrong\u003ESkill Development\u003C/strong\u003E whose entire job is to help you build other skills. Let&rsquo;s start it.\u003C/p\u003E\n","\u003Cp\u003EIn the CoCo prompt, type \u003Ccode\u003E/\u003C/code\u003E to open the skill picker, then choose \u003Cstrong\u003Eskill-development\u003C/strong\u003E (or type \u003Ccode\u003E$skill-development\u003C/code\u003E). Tell CoCo what you want to build:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E$skill-development I want to create a new skill that drafts on-brand\nmarketing content for my team.\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EThe Skill Development skill recognizes this as a \u003Cstrong\u003Ecreate\u003C/strong\u003E request and begins interviewing you. It will ask for the essentials of your new skill:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003EName\u003C/strong\u003E &ndash; a short \u003Ccode\u003Ekebab-case\u003C/code\u003E name\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EPurpose\u003C/strong\u003E &ndash; what problem the skill solves\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ETriggers\u003C/strong\u003E &ndash; words or phrases that should activate it\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ETools/Scripts\u003C/strong\u003E &ndash; any scripts or APIs it needs (we don&rsquo;t need any here)\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EYou should see CoCo ask you to confirm these details before it writes anything. This is a deliberate checkpoint &ndash; the skill pauses so you can correct course before any files are created.\u003C/p\u003E\n","\u003Ch2\u003EDescribe Your Skill\u003C/h2\u003E\n","\u003Cp\u003EAnswer CoCo&rsquo;s questions with the details for our \u003Cstrong\u003E\u003Ccode\u003Ebrand-content\u003C/code\u003E\u003C/strong\u003E skill. You can paste something like this:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003EName: brand-content\n\nPurpose: Draft marketing copy &ndash; product announcement emails and slide\noutlines &ndash; that follows Peak Outfitters&rsquo; brand voice and style guidelines,\nso anyone can produce on-brand content without memorizing the style guide.\n\nTriggers: brand content, marketing copy, launch email, announcement,\ndeck outline, slide outline, on-brand, style guide\n\nTools/Scripts: none &ndash; the skill should read a brand guidelines file and\nwrite the copy directly.\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EA note on \u003Cstrong\u003Etriggers\u003C/strong\u003E: list the everyday phrases your teammates would actually type, not just the obvious ones. A good description casts a wide net &ndash; &ldquo;launch email&rdquo; and &ldquo;announcement&rdquo; should both trigger \u003Ccode\u003Ebrand-content\u003C/code\u003E, even if a user never types the word &ldquo;brand.&rdquo;\u003C/p\u003E\n","\u003Cp\u003ECoCo will confirm your requirements, then propose a \u003Cstrong\u003Estructure\u003C/strong\u003E for the skill and pause again for your approval. For our case it will suggest a single \u003Cstrong\u003ESKILL.md\u003C/strong\u003E plus a small \u003Cstrong\u003Ereferences\u003C/strong\u003E file to hold the brand guidelines &ndash; content that the skill only needs to load when it&rsquo;s actually drafting. Approve the structure to continue.\u003C/p\u003E\n","\u003Ch2\u003EReview the Generated Skill\u003C/h2\u003E\n","\u003Cp\u003EOnce you approve the structure, CoCo writes the skill. It creates a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E similar to this:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-markdown\"\u003E---\nname: brand-content\ndescription: &quot;Draft on-brand marketing copy &ndash; product announcement emails and slide outlines &ndash; that follows Peak Outfitters&rsquo; brand voice and style guidelines. Use whenever the user wants to write marketing content, a launch email, an announcement, or a slide/deck outline. Triggers: brand content, marketing copy, launch email, announcement, deck outline, slide outline, on-brand, style guide.&quot;\n---\n\n# Brand Content\n\n## Setup\n**Load** `references/brand-guidelines.md` before drafting.\n\n## Workflow\n\n### Step 1: Gather the brief\nAsk for content type, product/topic, audience, and key points.\n**⚠️ STOP**: Confirm the brief before drafting.\n\n### Step 2: Draft against the guidelines\nApply the voice, terminology, structure, and CTA rules from the guidelines file.\n\n### Step 3: Present with a compliance note\nReturn the draft plus a short &ldquo;Brand check&rdquo; list of the rules applied.\n**⚠️ STOP**: Final review with the user.\n\n## Stopping Points\n- ✋ Step 1: Brief confirmed\n- ✋ Step 3: Final review\n\n## Output\nAn on-brand email or slide outline, plus a brand-compliance checklist.\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EHere&rsquo;s what this skill does:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003EThe \u003Cstrong\u003Edescription\u003C/strong\u003E is written to trigger on many everyday phrases, so teammates don&rsquo;t have to know it exists to benefit from it.\u003C/li\u003E\u003Cli\u003EThe \u003Cstrong\u003ESetup\u003C/strong\u003E section points to a separate \u003Cstrong\u003Ereferences/brand-guidelines.md\u003C/strong\u003E file. Keeping the guidelines in their own file means CoCo only loads them when it&rsquo;s actually drafting &ndash; and Marketing can update the brand rules without touching the workflow.\u003C/li\u003E\u003Cli\u003EThe \u003Cstrong\u003E⚠️ STOP\u003C/strong\u003E checkpoints make CoCo pause so a human confirms the brief and the final copy before anything ships.\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003ENext, create the guidelines file the skill relies on. Ask CoCo to add \u003Cstrong\u003Ereferences/brand-guidelines.md\u003C/strong\u003E next to the \u003Cstrong\u003ESKILL.md\u003C/strong\u003E, with your team&rsquo;s actual voice, terminology, structure rules, and calls to action. A short version of this file could look like this:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-markdown\"\u003E# Peak Outfitters &ndash; Brand Voice &amp; Style Guidelines\n\n## Voice\n- Confident, not boastful. Plainspoken. Outdoors-forward.\n\n## Approved terminology\n- Use &ldquo;gear&rdquo; (not &ldquo;equipment&rdquo;), &ldquo;adventurers&rdquo; (not &ldquo;users&rdquo;).\n\n## Structure rules\n- Lead with the customer benefit, then the feature.\n- Emails: one clear ask. Slide outlines: max 6 slides.\n\n## Approved brand hook\n- &ldquo;The outdoors doesn&rsquo;t wait &ndash; and neither do we.&rdquo;\n\n## Calls to action\n- Email: &ldquo;Shop the collection.&rdquo; Slides: close with a &ldquo;Get outside&rdquo; slide.\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EKeep this reference file short. It&rsquo;s loaded into CoCo&rsquo;s context on demand, so trimming it to the rules that matter keeps the skill fast and focused.\u003C/p\u003E\n","\u003Ch2\u003EInstall and Run Your Skill\u003C/h2\u003E\n","\u003Cp\u003ESkills live in a \u003Cstrong\u003Eskills\u003C/strong\u003E folder that CoCo watches. When you let CoCo write the skill, it places the files there for you &ndash; a \u003Cstrong\u003Ebrand-content/\u003C/strong\u003E folder containing your \u003Cstrong\u003ESKILL.md\u003C/strong\u003E and the \u003Cstrong\u003Ereferences/brand-guidelines.md\u003C/strong\u003E file. The exact folder depends on which surface you&rsquo;re using (for example, \u003Cstrong\u003E.cortex/skills/\u003C/strong\u003E in the CLI, or \u003Cstrong\u003E.snowflake/cortex/skills/\u003C/strong\u003E in CoCo Desktop and the Snowsight UI) &ndash; the \u003Cstrong\u003EUse Your Skill in CoCo Desktop, the CLI, and Snowsight\u003C/strong\u003E section below has the full breakdown.\u003C/p\u003E\n","\u003Cp\u003EThere&rsquo;s no separate skill registration step. The skill becomes available the next time you open the \u003Ccode\u003E/\u003C/code\u003E picker.\u003C/p\u003E\n","\u003Cp\u003ELet&rsquo;s use it. Open the \u003Ccode\u003E/\u003C/code\u003E picker, choose \u003Cstrong\u003Ebrand-content\u003C/strong\u003E, and give it a brief:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E/brand-content Draft a launch email to existing customers announcing our\nnew three-season waterproof shell. Emphasize that it stays dry in multi-day\nstorms and packs down small.\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EHere&rsquo;s what you should see:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003ECoCo first confirms the brief (content type, product, audience, key points) and waits for your OK &ndash; that&rsquo;s the Step 1 stopping point doing its job.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EIt then drafts an email that opens with the approved brand hook, leads with the customer benefit, uses your approved terminology, and closes with &ldquo;Shop the collection.&rdquo;\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003EFinally it shows a short \u003Cstrong\u003EBrand check\u003C/strong\u003E list of the rules it applied, so you can confirm the copy is on-brand before sending.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EYou&rsquo;ve just turned your brand guidelines into a repeatable workflow that anyone on the team can run &ndash; without reading the style guide.\u003C/p\u003E\n","\u003Ch2\u003EUse Your Skill in CoCo Desktop, the CLI, and Snowsight\u003C/h2\u003E\n","\u003Cp\u003ECoCo comes in three places: the \u003Cstrong\u003EDesktop\u003C/strong\u003E app, the \u003Cstrong\u003ECLI\u003C/strong\u003E, and inside \u003Cstrong\u003ESnowsight\u003C/strong\u003E in your browser. The \u003Ccode\u003Ebrand-content\u003C/code\u003E skill you just built works the same in all three &ndash; you invoke it by typing \u003Ccode\u003E/\u003C/code\u003E &ndash; but where skills live and how you create and share them differs a little by surface.\u003C/p\u003E\n\u003Ctable\u003E\u003Cthead\u003E\u003Ctr\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003E \u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ECoCo Desktop\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ECoCo CLI\u003C/th\u003E\u003Cth colspan=\"1\" rowspan=\"1\"\u003ESnowsight UI\u003C/th\u003E\u003C/tr\u003E\u003C/thead\u003E\u003Ctbody\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EWhere skills live\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EProject \u003Cstrong\u003E.snowflake/cortex/skills/\u003C/strong\u003E plus any local folders you register; config in \u003Cstrong\u003E~/.snowflake/cortex/skills.json\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EProject \u003Cstrong\u003E.cortex/skills/\u003C/strong\u003E or global \u003Cstrong\u003E~/.snowflake/cortex/skills/\u003C/strong\u003E (shares \u003Cstrong\u003Eskills.json\u003C/strong\u003E with Desktop)\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EThe workspace&rsquo;s \u003Cstrong\u003E.snowflake/cortex/skills/\u003C/strong\u003E (workspace-scoped only)\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003ECreate a skill\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EThe \u003Ccode\u003Eskill-development\u003C/code\u003E skill for a single skill (or \u003Ccode\u003Eplugin-creator\u003C/code\u003E to scaffold a full plugin), or register a folder via \u003Cstrong\u003EAgent Settings &rarr; Skills &rarr; Add Local Skill\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EThe bundled \u003Ccode\u003Eskill-development\u003C/code\u003E skill, or add a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E under \u003Cstrong\u003E.cortex/skills/\u003C/strong\u003E yourself\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003E+ Create Skill\u003C/strong\u003E, or \u003Cstrong\u003EUpload Skill File(s)\u003C/strong\u003E / \u003Cstrong\u003EUpload Skill Folder(s)\u003C/strong\u003E\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EInvoke a skill\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EType \u003Ccode\u003E/\u003C/code\u003E in chat, or let CoCo auto-match it from your prompt\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EType \u003Ccode\u003E/\u003C/code\u003E or \u003Ccode\u003E$skill-name\u003C/code\u003E; run \u003Ccode\u003E/skill list\u003C/code\u003E to see what&rsquo;s available\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EType \u003Ccode\u003E/\u003C/code\u003E in the message box\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Cstrong\u003EShare with your team\u003C/strong\u003E\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EPublish to a Snowflake stage or the Skills Catalog, or add from GitHub\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003E\u003Ccode\u003Ecortex skill publish --to-stage\u003C/code\u003E, a Git repo, or the Snowflake catalog\u003C/td\u003E\u003Ctd colspan=\"1\" rowspan=\"1\"\u003EShare through the Horizon Catalog with the \u003Ccode\u003Eshare-skill\u003C/code\u003E skill; teammates find it with \u003Ccode\u003Efind-skill\u003C/code\u003E\u003C/td\u003E\u003C/tr\u003E\u003C/tbody\u003E\u003C/table\u003E\n","\u003Cp\u003EA few things worth knowing:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EDesktop and the CLI share the same config.\u003C/strong\u003E Both read \u003Cstrong\u003E~/.snowflake/cortex/skills.json\u003C/strong\u003E, so a skill you add on one shows up on the other automatically.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESnowsight skills are workspace-scoped.\u003C/strong\u003E A personal skill you create in a Snowsight workspace is only available in that workspace &ndash; it won&rsquo;t follow you elsewhere.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EHow you start a skill varies a bit.\u003C/strong\u003E The \u003Ccode\u003Eskill-development\u003C/code\u003E create workflow builds a single skill on both the CLI and Desktop; in Snowsight you use \u003Cstrong\u003E+ Create Skill\u003C/strong\u003E. CoCo Desktop&rsquo;s \u003Ccode\u003Eplugin-creator\u003C/code\u003E is the step up from there &ndash; it packages one or more skills into a shareable \u003Cem\u003Eplugin\u003C/em\u003E. Whatever you use, you end up with a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E in a skills folder, invoked the same way everywhere.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch2\u003EShare Your Skill With Your Team\u003C/h2\u003E\n","\u003Cp\u003EA skill that lives only on your machine only helps you &ndash; and if everyone builds their own version, you&rsquo;re back to five slightly different launch emails. The fix is to publish it to the \u003Cstrong\u003ESkills Catalog\u003C/strong\u003E, Snowflake&rsquo;s governed registry for skills. Once it&rsquo;s there, teammates find and install the same version, with access controlled by Snowflake roles.\u003C/p\u003E\n","\u003Cp\u003EHow you publish depends on your surface:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003ECoCo Desktop\u003C/strong\u003E &ndash; select the skill in \u003Cstrong\u003EAgent Settings &rarr; Skills\u003C/strong\u003E and choose \u003Cstrong\u003EPublish to Skills Catalog\u003C/strong\u003E.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ESnowsight\u003C/strong\u003E &ndash; run the \u003Ccode\u003Eshare-skill\u003C/code\u003E skill, which gives you a share link to hand out.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ECoCo CLI\u003C/strong\u003E &ndash; run \u003Ccode\u003Ecortex skill publish\u003C/code\u003E to push the skill to a Snowflake stage or the catalog.\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EHowever you publish, teammates then discover it with \u003Ccode\u003Efind-skill\u003C/code\u003E (or by pasting a share link) and install it in one step &ndash; so everyone runs the same \u003Ccode\u003Ebrand-content\u003C/code\u003E skill.\u003C/p\u003E\n","\u003Ch3\u003EPackage Related Skills as a Plugin\u003C/h3\u003E\n","\u003Cp\u003EAs your toolkit grows &ndash; say \u003Ccode\u003Ebrand-content\u003C/code\u003E, a launch-checklist skill, and a competitor-scan skill &ndash; you don&rsquo;t have to share them one at a time. A \u003Cstrong\u003Eplugin\u003C/strong\u003E is the container that bundles related skills (and optionally hooks or MCP servers) into a single installable unit. On CoCo Desktop, ask the \u003Ccode\u003Eplugin-creator\u003C/code\u003E skill to package them:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E/plugin-creator package my marketing skills into a plugin\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003ENow a teammate installs the whole toolkit in one step instead of hunting for each piece.\u003C/p\u003E\n","\u003Ch2\u003EScale Your Skill\u003C/h2\u003E\n","\u003Cp\u003EThe skill you built is a single \u003Cstrong\u003ESKILL.md\u003C/strong\u003E plus one reference file &ndash; and for most tasks, that&rsquo;s all you&rsquo;ll ever need. As your skills take on bigger jobs, two patterns help them grow without becoming slow or unwieldy.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReferences &ndash; offload the detail.\u003C/strong\u003E You already used this pattern. Keep the instructions in \u003Cstrong\u003ESKILL.md\u003C/strong\u003E and move bulky or frequently-changing detail into a \u003Cstrong\u003Ereferences/\u003C/strong\u003E file that CoCo loads only when it&rsquo;s needed. Your brand guidelines are a perfect example: the workflow rarely changes, but the guidelines do &ndash; and Marketing can update \u003Cstrong\u003Ebrand-guidelines.md\u003C/strong\u003E without ever touching the workflow. Reach for a reference file when content is long, or when someone other than the skill&rsquo;s author owns it.\u003C/p\u003E\n","\u003Cp\u003E\u003Cstrong\u003ESub-skills &ndash; split by branch.\u003C/strong\u003E When a single skill starts covering clearly separate jobs, split it. Imagine your \u003Ccode\u003Ebrand-content\u003C/code\u003E skill grew to handle emails, slide decks, and social posts. Instead of one long file, you&rsquo;d use a small &ldquo;router&rdquo; \u003Cstrong\u003ESKILL.md\u003C/strong\u003E that detects which job the user wants, plus a sub-folder for each branch. CoCo loads only the branch that matches the request, so the other two never take up context.\u003C/p\u003E\n","\u003Cp\u003EThe guiding principle: CoCo shares a limited context window across your whole conversation, so a lean, focused skill is a faster and more reliable skill. Start simple, and only add structure when the skill actually needs it.\u003C/p\u003E\n","\u003Cp\u003EHere&rsquo;s how the same skill could look as it grows:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E# Simple &ndash; one file\nbrand-content/\n└── SKILL.md\n\n# With a reference &ndash; detail loaded on demand\nbrand-content/\n├── SKILL.md\n└── references/\n    └── brand-guidelines.md\n\n# With sub-skills &ndash; one branch loaded at a time\nbrand-content/\n├── SKILL.md            # router: detects email vs. deck vs. social\n├── email/\n│   └── SKILL.md\n├── slide-deck/\n│   └── SKILL.md\n└── social-post/\n    └── SKILL.md\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003EA quick point of guidance: reach for a reference file when the detail is bulky or owned by someone else, and reach for sub-skills when the skill has clearly separate jobs.\u003C/p\u003E\n","\u003Cp\u003EThe Skill Development skill can set up either structure for you &ndash; just describe what you want. For the structural specifics, see the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill\"\u003ECreate your own skill\u003C/a\u003E documentation.\u003C/p\u003E\n","\u003Ch2\u003ECapture a Skill From Work You&rsquo;ve Already Done\u003C/h2\u003E\n","\u003Cp\u003ESome of the best skills don&rsquo;t start as ideas at all &ndash; they start as work you just finished. Say you spent this morning with CoCo drafting Peak Outfitters&rsquo; spring launch email: you pasted in the brief, went back and forth on the hook, tightened the call to action, and landed on something you&rsquo;re happy with. Next quarter you&rsquo;ll do the whole thing again from scratch &ndash; unless you capture it now, while the workflow is still fresh.\u003C/p\u003E\n","\u003Cp\u003ESo instead of describing a new skill, point CoCo at the session you just had:\u003C/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-bash\"\u003E$skill-development can you make a skill from what we just did today?\n\u003C/code\u003E\u003C/pre\u003E\n","\u003Cp\u003ECoCo reads back through the conversation, works out the repeatable workflow underneath it, and drafts a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E that generalizes the specifics &ndash; turning &ldquo;this quarter&rsquo;s spring email&rdquo; into &ldquo;any launch email&rdquo; &ndash; pausing at the same review checkpoints you saw earlier. The difference from building an idea from scratch is that you&rsquo;ve already proven the workflow works, so you&rsquo;re not guessing at the steps; you&rsquo;re just saving the ones you already ran. That&rsquo;s what makes this so useful: the next time the task comes around, it&rsquo;s one command.\u003C/p\u003E\n","\u003Cp\u003EThis is worth keeping in the back of your mind as you work. Any time you finish something with CoCo and think &ldquo;I&rsquo;ll be doing this again,&rdquo; that&rsquo;s a good cue to capture it as a skill.\u003C/p\u003E\n","\u003Ch2\u003EIterate on Your Skill\u003C/h2\u003E\n","\u003Cp\u003ESkills are living documents. As your needs grow, the Skill Development skill can help you improve them, too. Invoke \u003Ccode\u003E$skill-development\u003C/code\u003E again and describe what you want:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EReview it\u003C/strong\u003E &ndash; ask CoCo to review your skill against best practices and suggest fixes (for example, &ldquo;audit my brand-content skill&rdquo;).\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003ERefactor it\u003C/strong\u003E &ndash; if a single skill grows too large or starts covering several distinct jobs, ask CoCo to split it into smaller, focused pieces.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EAdd capabilities\u003C/strong\u003E &ndash; extend the workflow (for example, add a &ldquo;social post&rdquo; content type) by describing the change and letting CoCo update the \u003Cstrong\u003ESKILL.md\u003C/strong\u003E.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch2\u003EBuild a Skill for Anything\u003C/h2\u003E\n","\u003Cp\u003EThis guide walked through one skill end to end &ndash; the mechanics of what a skill is made of, the best practices for when and how to build one, and how to use and design skills across CoCo Desktop, the CLI, and Snowsight. We kept the example deliberately simple and aimed it at non-technical teammates, but that&rsquo;s just one shape a skill can take. You can build a skill for almost anything you do repeatedly, and the same mechanics apply.\u003C/p\u003E\n","\u003Cp\u003EHere are a few ideas by role:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EData analysts\u003C/strong\u003E &ndash; a skill that turns a set of tables into a validated Cortex Analyst semantic view following your naming conventions; one that answers ad-hoc questions using only your team&rsquo;s approved metric definitions; or a &ldquo;profile this table&rdquo; skill that returns row counts, null rates, and distributions in a standard format.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EData engineers\u003C/strong\u003E &ndash; a skill that stands up a new pipeline (dynamic tables or dbt) in your project&rsquo;s layering and naming standard; a pre-release data-quality check that runs your usual freshness, row-count, and null tests; or an impact-analysis skill that traces downstream lineage before you rename or drop a column.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EML engineers\u003C/strong\u003E &ndash; a skill that builds features and registers a model following your MLOps conventions; a standardized batch-inference scorer that writes results consistently; or a document-intelligence skill that turns a stage of PDFs into a structured table.\u003C/p\u003E\n\u003C/li\u003E\u003Cli\u003E\n","\u003Cp\u003E\u003Cstrong\u003EApp builders\u003C/strong\u003E &ndash; a skill that scaffolds a Streamlit in Snowflake app with your team&rsquo;s layout, auth, and theming; a Native App starter that follows your packaging conventions; or a &ldquo;deploy to SPCS&rdquo; skill that applies your standard configuration.\u003C/p\u003E\n\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003EStart From What&rsquo;s Already Built In\u003C/h3\u003E\n","\u003Cp\u003EYou don&rsquo;t always have to start from scratch. CoCo ships with a large library of built-in skills spanning warehouses, dynamic tables, dbt, Iceberg, semantic views, dashboards, Cortex Agents, machine learning, document intelligence, data quality, lineage, governance, sharing, and cost management. Before you build, check whether one already covers what you need &ndash; and reading existing skills is one of the best ways to learn to write your own.\u003C/p\u003E\n","\u003Cp\u003ETo browse what&rsquo;s available:\u003C/p\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Cstrong\u003ECLI\u003C/strong\u003E &ndash; run \u003Ccode\u003E/skill list\u003C/code\u003E, or use the \u003Ccode\u003Efind-skill\u003C/code\u003E skill to search by description.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003EDesktop\u003C/strong\u003E &ndash; open \u003Cstrong\u003EAgent Settings &rarr; Skills\u003C/strong\u003E and look at the \u003Cstrong\u003EPackaged Skills\u003C/strong\u003E section; \u003Cstrong\u003EBrowse Skills Catalog\u003C/strong\u003E shows skills shared across your org.\u003C/li\u003E\u003Cli\u003E\u003Cstrong\u003ESnowsight\u003C/strong\u003E &ndash; type \u003Ccode\u003E/\u003C/code\u003E in the message box to see the built-in skills available on any page.\u003C/li\u003E\u003C/ul\u003E\n","\u003Cp\u003EFor the full catalog, see the \u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/bundled-skills\"\u003ECoCo CLI bundled skills\u003C/a\u003E reference.\u003C/p\u003E\n","\u003Ch2\u003EClean Up\u003C/h2\u003E\n","\u003Cp\u003EIf you only built this skill to follow along, you can remove it. Delete the skill folder CoCo created &ndash; the \u003Cstrong\u003Ebrand-content/\u003C/strong\u003E directory and everything inside it. Once it&rsquo;s gone, it will no longer appear in the \u003Ccode\u003E/\u003C/code\u003E picker.\u003C/p\u003E\n","\u003Cp\u003EIf you want to keep it, the best way to get it to your teammates is to publish it to the Skills Catalog (see \u003Cstrong\u003EShare Your Skill With Your Team\u003C/strong\u003E above). For a quick one-off, you can also just share the folder and have them drop it into their own \u003Cstrong\u003Eskills\u003C/strong\u003E directory &ndash; a skill is just a folder of Markdown.\u003C/p\u003E\n","\u003Ch2\u003EConclusion And Resources\u003C/h2\u003E\n","\u003Cp\u003EYou built a working CoCo skill without writing a single line of code. By using the built-in \u003Cstrong\u003ESkill Development\u003C/strong\u003E skill, you described what you wanted in plain English, reviewed what CoCo generated at each checkpoint, and ended up with a reusable \u003Ccode\u003Ebrand-content\u003C/code\u003E skill your whole team can run from the \u003Ccode\u003E/\u003C/code\u003E picker.\u003C/p\u003E\n","\u003Cp\u003EThis same pattern works for almost any repeatable task &ndash; onboarding checklists, code-review conventions, data-request intake, release notes. If your team does it more than once, you can turn it into a skill.\u003C/p\u003E\n","\u003Ch3\u003EWhat You Learned\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003EA skill is a \u003Cstrong\u003ESKILL.md\u003C/strong\u003E file with frontmatter (\u003Ccode\u003Ename\u003C/code\u003E + \u003Ccode\u003Edescription\u003C/code\u003E) and a workflow body\u003C/li\u003E\u003Cli\u003EThe \u003Ccode\u003Edescription\u003C/code\u003E field, with good trigger words, is what makes CoCo actually use your skill\u003C/li\u003E\u003Cli\u003EThe \u003Cstrong\u003ESkill Development\u003C/strong\u003E skill interviews you and writes the skill for you, pausing at checkpoints\u003C/li\u003E\u003Cli\u003EReference files (like brand guidelines) keep skills focused and let non-technical owners maintain them\u003C/li\u003E\u003Cli\u003ESkills are discovered automatically from the \u003Cstrong\u003Eskills\u003C/strong\u003E folder &ndash; no registration, just the \u003Ccode\u003E/\u003C/code\u003E picker\u003C/li\u003E\u003C/ul\u003E\n","\u003Ch3\u003ERelated Resources\u003C/h3\u003E\n\u003Cul\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills\"\u003ECoCo Skills documentation (Desktop)\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill\"\u003ECreate your own skill\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/extensibility\"\u003ECoCo CLI skills (extensibility)\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/bundled-skills\"\u003ECoCo CLI bundled skills\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-snowsight/skills-and-plugins\"\u003ESkills and plugins in Snowsight\u003C/a\u003E\u003C/li\u003E\u003Cli\u003E\u003Ca href=\"https://www.snowflake.com/en/developers/guides/building-ai-agents-with-cortex-code-and-cowork/\"\u003EBuilding AI Agents with Cortex Code and Cowork\u003C/a\u003E\u003C/li\u003E\u003C/ul\u003E"],"title":"Base Quickstart CF","isDeveloperGuidesPage":false,"elements":{"quickstartArticleBody":{"dataType":"string","title":"Quickstart Article Body","value":"## Overview\n\nCoCo is Snowflake’s AI coding assistant. Out of the box it can query your data, write SQL, and explore your account, but its real power is that you can teach it new, repeatable workflows through **skills**.\n\nA skill is a small Markdown file that tells CoCo how to complete a specific task. Skills allow you to turn tasks that have a known and repeatable structure into something CoCo does consistently, every time. Once you add a skill, it shows up in CoCo’s `/` picker and anyone on your team can invoke it.\n\nThe best part: you don’t have to write a CoCo skill by hand. CoCo ships with a built-in skill called **Skill Development** that interviews you and writes the skill for you.\n\nIn this guide you’ll play the role of a **marketer at Peak Outfitters**, a fictional outdoor-gear company. Your marketing team wants everyone – even non-technical team members – to be able to draft launch emails and slide outlines that follow the company’s brand voice and style guidelines. Instead of asking everyone to memorize the style guide, you’ll build a reusable **brand-content** skill that does it for them.\n\n### What You’ll Learn\n- What a CoCo skill is and what it’s made of\n- How to tell when a task is actually worth turning into a skill\n- The two ways to start a skill – from an idea, or by capturing work you just did\n- How to use the built-in **Skill Development** skill to create a new skill\n- Where skills live and how CoCo discovers them\n- How to install, run, and iterate on your own skill\n\n### What You’ll Need\n- Access to **CoCo** – see the [CoCo Skills documentation](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills) for how to get started\n- A working directory (project folder) open in CoCo where you can create files\n- No prior coding experience – everything here is plain English and Markdown\n\n### What You’ll Build\n- A custom **`brand-content`** skill that drafts on-brand marketing copy\n- A supporting **brand guidelines** reference file the skill reads on demand\n- A working skill you can invoke from CoCo’s `/` picker\n\n## What Is a Skill?\n\nBefore building a skill, it helps to understand what CoCo is actually reading. A skill is a folder containing a **SKILL.md** file. That file has two parts:\n\n**1. Frontmatter** – a small block at the top (between `---` fences) with two fields:\n\n```yaml\n---\nname: brand-content\ndescription: \"Draft on-brand marketing copy... Use whenever the user wants to write marketing content, a launch email, or a slide outline. Triggers: brand content, marketing copy, launch email, announcement, deck outline.\"\n---\n```\n\nHere’s what the frontmatter does:\n\n- **`name`** – the skill’s identifier, in `kebab-case` (lowercase words joined by hyphens).\n\n- **`description`** – the most important field. This is how CoCo decides *when* to use the skill. A good description says **what** the skill does, **when** to use it, and lists **trigger** words that should activate it.\n\n**2. Body** – plain Markdown that teaches CoCo how to do the task. The [Create your own skill](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill) documentation describes the structure, but the common sections are:\n\n- `## Workflow` – the step-by-step instructions CoCo follows.\n- `## Stopping Points` – where CoCo should pause and check in with you.\n- `## Output` – what the skill produces when it’s done.\n\nThat’s it. A skill is just a description of a job, written so CoCo can follow it. You don’t have to write this file yourself – the Skill Development skill will do it for you. But before we build one, it’s worth understanding: when is a skill actually worth creating?\n\n## When Should You Build a Skill?\n\nNot every task will deserve a skill. Building one for the wrong thing just adds clutter to your `/` picker. \n\nThe signal to watch for is repetition with structure: you catch yourself doing the same kind of task more than once – the same rough steps, the same shape – just with different inputs each time. Drafting a launch email every quarter, standing up a new pipeline the same way each time, running the same checks before you ship a change – those are skills waiting to happen. A true one-off, or something open-ended and creative with no repeatable shape, usually isn’t worth capturing.\n\nHere are a couple of important things to keep in mind when building a skill:\n\n- Know the outcome. Be clear about what “done” actually looks like, because that’s the artifact your skill has to produce every time. \n\n- Capture the steps before you build. Even a rough list of what you do, in order, is enough, and it means the skill encodes the workflow you actually follow instead of a guess at it.\n\nAnd before you build anything, it’s worth checking whether the skill already exists. CoCo ships with a large built-in library, and your team may have published more – so search first:\n\n```bash\n/find-skill is there a skill for drafting on-brand marketing content?\n```\n\nCoCo searches the catalog and lists anything that matches, ready to install in one step. In our case nothing fits our brand, so we’ll build it.\n\nOnce you’ve spotted a good candidate, there are a couple of ways to turn it into a skill:\n\n- You already have the idea in your head: e.g., “I want a skill that drafts on-brand launch emails.” That’s the path we’ll walk through next.\n\n- Or you just finished work with CoCo and want to keep it: e.g., “Make a skill out of what we just did today.” We’ll come back to that one later, but it’s a useful approach.\n\n## Invoke the Skill Development Skill\n\n\u003E This guide uses the `skill-development` skill to build a single skill – the same create-from-scratch workflow works in the CoCo CLI and CoCo Desktop. In the Snowsight UI, you create a skill with **+ Create Skill** instead. (CoCo Desktop also bundles a `plugin-creator` skill, but that scaffolds a whole *plugin* – a container that packages one or more skills for sharing – which is more than you need for a single skill.) Either way you end up with a **SKILL.md** in your skills folder, and everything after this step works identically. The **Use Your Skill in CoCo Desktop, the CLI, and Snowsight** section below covers the differences.\n\nCoCo includes a built-in skill called **Skill Development** whose entire job is to help you build other skills. Let’s start it.\n\nIn the CoCo prompt, type `/` to open the skill picker, then choose **skill-development** (or type `$skill-development`). Tell CoCo what you want to build:\n\n```bash\n$skill-development I want to create a new skill that drafts on-brand\nmarketing content for my team.\n```\n\nThe Skill Development skill recognizes this as a **create** request and begins interviewing you. It will ask for the essentials of your new skill:\n\n- **Name** – a short `kebab-case` name\n- **Purpose** – what problem the skill solves\n- **Triggers** – words or phrases that should activate it\n- **Tools/Scripts** – any scripts or APIs it needs (we don’t need any here)\n\nYou should see CoCo ask you to confirm these details before it writes anything. This is a deliberate checkpoint – the skill pauses so you can correct course before any files are created.\n\n## Describe Your Skill\n\nAnswer CoCo’s questions with the details for our **`brand-content`** skill. You can paste something like this:\n\n```bash\nName: brand-content\n\nPurpose: Draft marketing copy – product announcement emails and slide\noutlines – that follows Peak Outfitters’ brand voice and style guidelines,\nso anyone can produce on-brand content without memorizing the style guide.\n\nTriggers: brand content, marketing copy, launch email, announcement,\ndeck outline, slide outline, on-brand, style guide\n\nTools/Scripts: none – the skill should read a brand guidelines file and\nwrite the copy directly.\n```\n\nA note on **triggers**: list the everyday phrases your teammates would actually type, not just the obvious ones. A good description casts a wide net – “launch email” and “announcement” should both trigger `brand-content`, even if a user never types the word “brand.”\n\nCoCo will confirm your requirements, then propose a **structure** for the skill and pause again for your approval. For our case it will suggest a single **SKILL.md** plus a small **references** file to hold the brand guidelines – content that the skill only needs to load when it’s actually drafting. Approve the structure to continue.\n\n## Review the Generated Skill\n\nOnce you approve the structure, CoCo writes the skill. It creates a **SKILL.md** similar to this:\n\n```markdown\n---\nname: brand-content\ndescription: \"Draft on-brand marketing copy – product announcement emails and slide outlines – that follows Peak Outfitters’ brand voice and style guidelines. Use whenever the user wants to write marketing content, a launch email, an announcement, or a slide/deck outline. Triggers: brand content, marketing copy, launch email, announcement, deck outline, slide outline, on-brand, style guide.\"\n---\n\n# Brand Content\n\n## Setup\n**Load** `references/brand-guidelines.md` before drafting.\n\n## Workflow\n\n### Step 1: Gather the brief\nAsk for content type, product/topic, audience, and key points.\n**⚠️ STOP**: Confirm the brief before drafting.\n\n### Step 2: Draft against the guidelines\nApply the voice, terminology, structure, and CTA rules from the guidelines file.\n\n### Step 3: Present with a compliance note\nReturn the draft plus a short “Brand check” list of the rules applied.\n**⚠️ STOP**: Final review with the user.\n\n## Stopping Points\n- ✋ Step 1: Brief confirmed\n- ✋ Step 3: Final review\n\n## Output\nAn on-brand email or slide outline, plus a brand-compliance checklist.\n```\n\nHere’s what this skill does:\n\n- The **description** is written to trigger on many everyday phrases, so teammates don’t have to know it exists to benefit from it.\n- The **Setup** section points to a separate **references/brand-guidelines.md** file. Keeping the guidelines in their own file means CoCo only loads them when it’s actually drafting – and Marketing can update the brand rules without touching the workflow.\n- The **⚠️ STOP** checkpoints make CoCo pause so a human confirms the brief and the final copy before anything ships.\n\nNext, create the guidelines file the skill relies on. Ask CoCo to add **references/brand-guidelines.md** next to the **SKILL.md**, with your team’s actual voice, terminology, structure rules, and calls to action. A short version of this file could look like this:\n\n```markdown\n# Peak Outfitters – Brand Voice & Style Guidelines\n\n## Voice\n- Confident, not boastful. Plainspoken. Outdoors-forward.\n\n## Approved terminology\n- Use “gear” (not “equipment”), “adventurers” (not “users”).\n\n## Structure rules\n- Lead with the customer benefit, then the feature.\n- Emails: one clear ask. Slide outlines: max 6 slides.\n\n## Approved brand hook\n- “The outdoors doesn’t wait – and neither do we.”\n\n## Calls to action\n- Email: “Shop the collection.” Slides: close with a “Get outside” slide.\n```\n\nKeep this reference file short. It’s loaded into CoCo’s context on demand, so trimming it to the rules that matter keeps the skill fast and focused.\n\n## Install and Run Your Skill\n\nSkills live in a **skills** folder that CoCo watches. When you let CoCo write the skill, it places the files there for you – a **brand-content/** folder containing your **SKILL.md** and the **references/brand-guidelines.md** file. The exact folder depends on which surface you’re using (for example, **.cortex/skills/** in the CLI, or **.snowflake/cortex/skills/** in CoCo Desktop and the Snowsight UI) – the **Use Your Skill in CoCo Desktop, the CLI, and Snowsight** section below has the full breakdown.\n\nThere’s no separate skill registration step. The skill becomes available the next time you open the `/` picker.\n\nLet’s use it. Open the `/` picker, choose **brand-content**, and give it a brief:\n\n```bash\n/brand-content Draft a launch email to existing customers announcing our\nnew three-season waterproof shell. Emphasize that it stays dry in multi-day\nstorms and packs down small.\n```\n\nHere’s what you should see:\n\n- CoCo first confirms the brief (content type, product, audience, key points) and waits for your OK – that’s the Step 1 stopping point doing its job.\n\n- It then drafts an email that opens with the approved brand hook, leads with the customer benefit, uses your approved terminology, and closes with “Shop the collection.”\n\n- Finally it shows a short **Brand check** list of the rules it applied, so you can confirm the copy is on-brand before sending.\n\nYou’ve just turned your brand guidelines into a repeatable workflow that anyone on the team can run – without reading the style guide.\n\n## Use Your Skill in CoCo Desktop, the CLI, and Snowsight\n\nCoCo comes in three places: the **Desktop** app, the **CLI**, and inside **Snowsight** in your browser. The `brand-content` skill you just built works the same in all three – you invoke it by typing `/` – but where skills live and how you create and share them differs a little by surface.\n\n| | CoCo Desktop | CoCo CLI | Snowsight UI |\n|---|---|---|---|\n| **Where skills live** | Project **.snowflake/cortex/skills/** plus any local folders you register; config in **~/.snowflake/cortex/skills.json** | Project **.cortex/skills/** or global **~/.snowflake/cortex/skills/** (shares **skills.json** with Desktop) | The workspace’s **.snowflake/cortex/skills/** (workspace-scoped only) |\n| **Create a skill** | The `skill-development` skill for a single skill (or `plugin-creator` to scaffold a full plugin), or register a folder via **Agent Settings → Skills → Add Local Skill** | The bundled `skill-development` skill, or add a **SKILL.md** under **.cortex/skills/** yourself | **+ Create Skill**, or **Upload Skill File(s)** / **Upload Skill Folder(s)** |\n| **Invoke a skill** | Type `/` in chat, or let CoCo auto-match it from your prompt | Type `/` or `$skill-name`; run `/skill list` to see what’s available | Type `/` in the message box |\n| **Share with your team** | Publish to a Snowflake stage or the Skills Catalog, or add from GitHub | `cortex skill publish --to-stage`, a Git repo, or the Snowflake catalog | Share through the Horizon Catalog with the `share-skill` skill; teammates find it with `find-skill` |\n\nA few things worth knowing:\n\n- **Desktop and the CLI share the same config.** Both read **~/.snowflake/cortex/skills.json**, so a skill you add on one shows up on the other automatically.\n\n- **Snowsight skills are workspace-scoped.** A personal skill you create in a Snowsight workspace is only available in that workspace – it won’t follow you elsewhere.\n\n- **How you start a skill varies a bit.** The `skill-development` create workflow builds a single skill on both the CLI and Desktop; in Snowsight you use **+ Create Skill**. CoCo Desktop’s `plugin-creator` is the step up from there – it packages one or more skills into a shareable *plugin*. Whatever you use, you end up with a **SKILL.md** in a skills folder, invoked the same way everywhere.\n\n## Share Your Skill With Your Team\n\nA skill that lives only on your machine only helps you – and if everyone builds their own version, you’re back to five slightly different launch emails. The fix is to publish it to the **Skills Catalog**, Snowflake’s governed registry for skills. Once it’s there, teammates find and install the same version, with access controlled by Snowflake roles.\n\nHow you publish depends on your surface:\n\n- **CoCo Desktop** – select the skill in **Agent Settings → Skills** and choose **Publish to Skills Catalog**.\n- **Snowsight** – run the `share-skill` skill, which gives you a share link to hand out.\n- **CoCo CLI** – run `cortex skill publish` to push the skill to a Snowflake stage or the catalog.\n\nHowever you publish, teammates then discover it with `find-skill` (or by pasting a share link) and install it in one step – so everyone runs the same `brand-content` skill.\n\n### Package Related Skills as a Plugin\n\nAs your toolkit grows – say `brand-content`, a launch-checklist skill, and a competitor-scan skill – you don’t have to share them one at a time. A **plugin** is the container that bundles related skills (and optionally hooks or MCP servers) into a single installable unit. On CoCo Desktop, ask the `plugin-creator` skill to package them:\n\n```bash\n/plugin-creator package my marketing skills into a plugin\n```\n\nNow a teammate installs the whole toolkit in one step instead of hunting for each piece.\n\n## Scale Your Skill\n\nThe skill you built is a single **SKILL.md** plus one reference file – and for most tasks, that’s all you’ll ever need. As your skills take on bigger jobs, two patterns help them grow without becoming slow or unwieldy. \n\n**References – offload the detail.** You already used this pattern. Keep the instructions in **SKILL.md** and move bulky or frequently-changing detail into a **references/** file that CoCo loads only when it’s needed. Your brand guidelines are a perfect example: the workflow rarely changes, but the guidelines do – and Marketing can update **brand-guidelines.md** without ever touching the workflow. Reach for a reference file when content is long, or when someone other than the skill’s author owns it.\n\n**Sub-skills – split by branch.** When a single skill starts covering clearly separate jobs, split it. Imagine your `brand-content` skill grew to handle emails, slide decks, and social posts. Instead of one long file, you’d use a small “router” **SKILL.md** that detects which job the user wants, plus a sub-folder for each branch. CoCo loads only the branch that matches the request, so the other two never take up context.\n\nThe guiding principle: CoCo shares a limited context window across your whole conversation, so a lean, focused skill is a faster and more reliable skill. Start simple, and only add structure when the skill actually needs it.\n\nHere’s how the same skill could look as it grows:\n\n```bash\n# Simple – one file\nbrand-content/\n└── SKILL.md\n\n# With a reference – detail loaded on demand\nbrand-content/\n├── SKILL.md\n└── references/\n    └── brand-guidelines.md\n\n# With sub-skills – one branch loaded at a time\nbrand-content/\n├── SKILL.md            # router: detects email vs. deck vs. social\n├── email/\n│   └── SKILL.md\n├── slide-deck/\n│   └── SKILL.md\n└── social-post/\n    └── SKILL.md\n```\n\nA quick point of guidance: reach for a reference file when the detail is bulky or owned by someone else, and reach for sub-skills when the skill has clearly separate jobs. \n\nThe Skill Development skill can set up either structure for you – just describe what you want. For the structural specifics, see the [Create your own skill](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill) documentation.\n\n## Capture a Skill From Work You’ve Already Done\n\nSome of the best skills don’t start as ideas at all – they start as work you just finished. Say you spent this morning with CoCo drafting Peak Outfitters’ spring launch email: you pasted in the brief, went back and forth on the hook, tightened the call to action, and landed on something you’re happy with. Next quarter you’ll do the whole thing again from scratch – unless you capture it now, while the workflow is still fresh.\n\nSo instead of describing a new skill, point CoCo at the session you just had:\n\n```bash\n$skill-development can you make a skill from what we just did today?\n```\n\nCoCo reads back through the conversation, works out the repeatable workflow underneath it, and drafts a **SKILL.md** that generalizes the specifics – turning “this quarter’s spring email” into “any launch email” – pausing at the same review checkpoints you saw earlier. The difference from building an idea from scratch is that you’ve already proven the workflow works, so you’re not guessing at the steps; you’re just saving the ones you already ran. That’s what makes this so useful: the next time the task comes around, it’s one command.\n\nThis is worth keeping in the back of your mind as you work. Any time you finish something with CoCo and think “I’ll be doing this again,” that’s a good cue to capture it as a skill.\n\n## Iterate on Your Skill\n\nSkills are living documents. As your needs grow, the Skill Development skill can help you improve them, too. Invoke `$skill-development` again and describe what you want:\n\n- **Review it** – ask CoCo to review your skill against best practices and suggest fixes (for example, “audit my brand-content skill”).\n\n- **Refactor it** – if a single skill grows too large or starts covering several distinct jobs, ask CoCo to split it into smaller, focused pieces.\n\n- **Add capabilities** – extend the workflow (for example, add a “social post” content type) by describing the change and letting CoCo update the **SKILL.md**.\n\n## Build a Skill for Anything\n\nThis guide walked through one skill end to end – the mechanics of what a skill is made of, the best practices for when and how to build one, and how to use and design skills across CoCo Desktop, the CLI, and Snowsight. We kept the example deliberately simple and aimed it at non-technical teammates, but that’s just one shape a skill can take. You can build a skill for almost anything you do repeatedly, and the same mechanics apply.\n\nHere are a few ideas by role:\n\n- **Data analysts** – a skill that turns a set of tables into a validated Cortex Analyst semantic view following your naming conventions; one that answers ad-hoc questions using only your team’s approved metric definitions; or a “profile this table” skill that returns row counts, null rates, and distributions in a standard format.\n\n- **Data engineers** – a skill that stands up a new pipeline (dynamic tables or dbt) in your project’s layering and naming standard; a pre-release data-quality check that runs your usual freshness, row-count, and null tests; or an impact-analysis skill that traces downstream lineage before you rename or drop a column.\n\n- **ML engineers** – a skill that builds features and registers a model following your MLOps conventions; a standardized batch-inference scorer that writes results consistently; or a document-intelligence skill that turns a stage of PDFs into a structured table.\n\n- **App builders** – a skill that scaffolds a Streamlit in Snowflake app with your team’s layout, auth, and theming; a Native App starter that follows your packaging conventions; or a “deploy to SPCS” skill that applies your standard configuration.\n\n### Start From What’s Already Built In\n\nYou don’t always have to start from scratch. CoCo ships with a large library of built-in skills spanning warehouses, dynamic tables, dbt, Iceberg, semantic views, dashboards, Cortex Agents, machine learning, document intelligence, data quality, lineage, governance, sharing, and cost management. Before you build, check whether one already covers what you need – and reading existing skills is one of the best ways to learn to write your own.\n\nTo browse what’s available:\n\n- **CLI** – run `/skill list`, or use the `find-skill` skill to search by description.\n- **Desktop** – open **Agent Settings → Skills** and look at the **Packaged Skills** section; **Browse Skills Catalog** shows skills shared across your org.\n- **Snowsight** – type `/` in the message box to see the built-in skills available on any page.\n\nFor the full catalog, see the [CoCo CLI bundled skills](https://docs.snowflake.com/en/user-guide/cortex-code/bundled-skills) reference.\n\n## Clean Up\n\nIf you only built this skill to follow along, you can remove it. Delete the skill folder CoCo created – the **brand-content/** directory and everything inside it. Once it’s gone, it will no longer appear in the `/` picker.\n\nIf you want to keep it, the best way to get it to your teammates is to publish it to the Skills Catalog (see **Share Your Skill With Your Team** above). For a quick one-off, you can also just share the folder and have them drop it into their own **skills** directory – a skill is just a folder of Markdown.\n\n## Conclusion And Resources\n\nYou built a working CoCo skill without writing a single line of code. By using the built-in **Skill Development** skill, you described what you wanted in plain English, reviewed what CoCo generated at each checkpoint, and ended up with a reusable `brand-content` skill your whole team can run from the `/` picker.\n\nThis same pattern works for almost any repeatable task – onboarding checklists, code-review conventions, data-request intake, release notes. If your team does it more than once, you can turn it into a skill.\n\n### What You Learned\n- A skill is a **SKILL.md** file with frontmatter (`name` + `description`) and a workflow body\n- The `description` field, with good trigger words, is what makes CoCo actually use your skill\n- The **Skill Development** skill interviews you and writes the skill for you, pausing at checkpoints\n- Reference files (like brand guidelines) keep skills focused and let non-technical owners maintain them\n- Skills are discovered automatically from the **skills** folder – no registration, just the `/` picker\n\n### Related Resources\n- [CoCo Skills documentation (Desktop)](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills)\n- [Create your own skill](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills#create-your-own-skill)\n- [CoCo CLI skills (extensibility)](https://docs.snowflake.com/en/user-guide/cortex-code/extensibility)\n- [CoCo CLI bundled skills](https://docs.snowflake.com/en/user-guide/cortex-code/bundled-skills)\n- [Skills and plugins in Snowsight](https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-snowsight/skills-and-plugins)\n- [Building AI Agents with Cortex Code and Cowork](https://www.snowflake.com/en/developers/guides/building-ai-agents-with-cortex-code-and-cowork/)\n","multiValue":false,":type":"text/x-markdown"},"quickstartArticleLogoImage":{"dataType":"string","title":"Quickstart Article Logo Image","multiValue":false,":type":"text/plain"}},"elementsOrder":["quickstartArticleBody","quickstartArticleLogoImage"],":items":{},":itemsOrder":[],":type":"snowflake-site/components/contentfragment","model":"snowflake-site/models/quickstart-article"},"flexible_column_cont":{"id":"flexible-column-container-695c7f7114","type":"2-column-75-25","alignColumns":"top","containerMaxWidth":"extra-large","topPadding":"none","bottomPadding":"none","spaceBetween":"none","reverseOnMobile":false,"carouselOnMobile":false,"backgroundImageOption":"none","flexible_column_content_container_1":{"layout":"SIMPLE","id":"container-8f8692e708",":items":{"quickstart_last_modi":{"id":"quickstart-last-modified-ee6aae9047","icon":{"id":"icon","icon":"calendar",":type":"snowflake-site/components/icon","appliedCssClassNames":"snowflake-icon-blue"},"lastModifiedDatePrefix":"Updated","lastModifiedDate":"2026-07-23",":type":"snowflake-site/components/quickstart/quickstart-last-modified","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"},"text":{"id":"text-d690c0c3b3","additionalClasses":"qs-disclaimer-text","text":"\u003Cp\u003E\u003Cspan style=\"color: #666;\"\u003EThis content is provided as is, and is not maintained on an ongoing basis. It may be out of date with current Snowflake instances\u003C/span\u003E\u003C/p\u003E\r\n","richText":true,":type":"snowflake-site/components/text","appliedCssClassNames":"snowflake-responsive-component-top-padding-small"}},":itemsOrder":["quickstart_last_modi","text"],":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container"},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-035c928710",":items":{},":itemsOrder":[],":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container"},"isBlogPage":false,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"}},":itemsOrder":["contentfragment","flexible_column_cont"],":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container"},"flexible_column_content_container_2":{"layout":"SIMPLE","id":"container-abaf662c03",":items":{"quickstart_table_of_":{"layout":"SIMPLE","id":"container-b542987f44","isDeveloperGuidesPage":false,":items":{"quickstart_table_of_":{"id":"quickstart-table-of-content-705fa41f5d",":type":"snowflake-site/components/quickstart/quickstart-table-of-content","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-a-coco-skill","headings":["\u003Ch2\u003EOverview\u003C/h2\u003E","\u003Ch2\u003EWhat Is a Skill?\u003C/h2\u003E","\u003Ch2\u003EWhen Should You Build a Skill?\u003C/h2\u003E","\u003Ch2\u003EInvoke the Skill Development Skill\u003C/h2\u003E","\u003Ch2\u003EDescribe Your Skill\u003C/h2\u003E","\u003Ch2\u003EReview the Generated Skill\u003C/h2\u003E","\u003Ch2\u003EInstall and Run Your Skill\u003C/h2\u003E","\u003Ch2\u003EUse Your Skill in CoCo Desktop, the CLI, and Snowsight\u003C/h2\u003E","\u003Ch2\u003EShare Your Skill With Your Team\u003C/h2\u003E","\u003Ch2\u003EScale Your Skill\u003C/h2\u003E","\u003Ch2\u003ECapture a Skill From Work You’ve Already Done\u003C/h2\u003E","\u003Ch2\u003EIterate on Your Skill\u003C/h2\u003E","\u003Ch2\u003EBuild a Skill for Anything\u003C/h2\u003E","\u003Ch2\u003EClean Up\u003C/h2\u003E","\u003Ch2\u003EConclusion And Resources\u003C/h2\u003E"]},"quickstart_button":{"id":"quickstart-button-0e18d73877",":type":"snowflake-site/components/quickstart/quickstart-button","fragmentPath":"/content/dam/snowflake-site/en/content-fragments/quickstarts/build-a-coco-skill","appliedCssClassNames":"snowflake-responsive-component-top-padding-none"}},":itemsOrder":["quickstart_table_of_","quickstart_button"],":type":"snowflake-site/components/quickstart/quickstart-table-of-content/quickstart-table-of-content-container"}},":itemsOrder":["quickstart_table_of_"],":type":"snowflake-site/components/flexible-column-container/flexible-column-content-container"},"isBlogPage":false,"isActiveTOC":false,":type":"snowflake-site/components/flexible-column-container"},"markup_editor":{"id":"markup-editor-b0aa4b6f93","title":"Page CSS","cssContent":"#quickstart-template-main-flexible-container{padding:24px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{grid-template-columns:1fr 0}.qs-disclaimer-text p \u003E span{font-size:15px !important}@media (min-width:768px){#quickstart-template-main-flexible-container{padding:24px 32px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{grid-template-columns:7fr 3fr;gap:48px}}@media (max-width:767px){#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{gap:0}}@media (min-width:1024px){#quickstart-template-main-flexible-container{padding:0 92px 48px 92px}#quickstart-template-main-flexible-container \u003E .snowflake-flexible-column-container-items{gap:117px}}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"}},":itemsOrder":["quickstart_hero","flexible_column_cont","markup_editor"],":type":"wcm/foundation/components/responsivegrid"},"modal_container":{"layout":"SIMPLE","id":"container-e45c9d3327",":items":{},":itemsOrder":[],":type":"snowflake-site/components/modal/modal-container"},"experiencefragment-footer":{"id":"experiencefragment-25326333ab","localizedFragmentVariationPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master/jcr:content","configured":true,"xfModelPath":"/content/experience-fragments/snowflake-site/language-masters/en/site/footer/master.xfmodel.json?callerPage=/content/snowflake-site/global/en/developers/guides/build-a-coco-skill",":type":"snowflake-site/components/experiencefragment"},"markup_editor":{"id":"markup-editor-97d3ae3dca","title":"Quickstarts Overrides","cssContent":".snowflake-markdown blockquote{padding:24px 32px;background:#f6f9fa;border:1px solid #29b5e8;border-radius:16px}.snowflake-markdown .snowflake-image-container img{width:auto !important;max-width:100%}.snowflake-markdown .snowflake-text ol{padding-left:20px !important}.snowflake-markdown .snowflake-text li{margin:0 0 12px 0 !important}.snowflake-markdown h3.snowflake-markdown-h3{font-size:20px !important;font-family:Texta,sans-serif !important}@media (min-width:768px){.snowflake-markdown h3.snowflake-markdown-h3{font-size:28px !important}}","isGSAPEnabled":false,":type":"snowflake-site/components/markup-editor"}},":itemsOrder":["experiencefragment-banner","experiencefragment-header","markup_editor_1950346551","responsivegrid","modal_container","experiencefragment-footer","markup_editor"],":type":"wcm/foundation/components/responsivegrid"}},":itemsOrder":["root"],":mappedPath":"/en/developers/guides/build-a-coco-skill/",":type":"snowflake-site/components/structure/page",":hierarchyType":"page",":path":"/content/snowflake-site/global/en/developers/guides/build-a-coco-skill","locale":"en"}
  