<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Takuya Shoji</title>
    <description>The latest articles on DEV Community by Takuya Shoji (@tshoji_data).</description>
    <link>https://dev.to/tshoji_data</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3174969%2Fec986a0e-75ee-42d6-ae09-7734103e96fa.jpg</url>
      <title>DEV Community: Takuya Shoji</title>
      <link>https://dev.to/tshoji_data</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tshoji_data"/>
    <language>en</language>
    <item>
      <title>Snowflake CoCo Skills, Plugins, and Profiles: When to Use Each and How to Share Them</title>
      <dc:creator>Takuya Shoji</dc:creator>
      <pubDate>Tue, 04 Aug 2026 05:34:29 +0000</pubDate>
      <link>https://dev.to/tshoji_data/snowflake-coco-skills-plugins-and-profiles-when-to-use-each-and-how-to-share-them-1nhp</link>
      <guid>https://dev.to/tshoji_data/snowflake-coco-skills-plugins-and-profiles-when-to-use-each-and-how-to-share-them-1nhp</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Snowflake CoCo (Cortex Code was renamed CoCo at Snowflake Summit 2026) is Snowflake's AI coding agent for SQL authoring, data analysis, and app development and more. It's available in several interfaces: CoCo in Snowsight, CoCo CLI, CoCo Desktop, &lt;a href="https://docs.snowflake.com/en/user-guide/vscode-ext" rel="noopener noreferrer"&gt;VS Code Extension&lt;/a&gt;, and &lt;a href="https://claude.com/plugins/snowflake-cortex-code" rel="noopener noreferrer"&gt;Claude Code Plugin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Across all of these, you can extend agent behavior using &lt;strong&gt;Skills&lt;/strong&gt; and &lt;strong&gt;Plugins&lt;/strong&gt;. The names are similar enough to cause confusion, but each plays a distinct role. Additionally, &lt;strong&gt;Profile&lt;/strong&gt; is the highest-level extension package — its spec may change before GA.&lt;/p&gt;

&lt;p&gt;This article explains what each one is, when to use it, and how to share Skills and Plugins with your team using the recently added &lt;strong&gt;Skills and Plugins Sharing&lt;/strong&gt; feature.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: This article reflects my personal views and does not represent Snowflake's official position.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; (July 2026) Skills and Plugins Sharing is in Public Preview (available in all accounts). Profile behavior may change in future updates.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  tl;dr
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Aspect&lt;/th&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Plugin&lt;/th&gt;
&lt;th&gt;Profile&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Main purpose&lt;/td&gt;
&lt;td&gt;Inject domain knowledge and procedures&lt;/td&gt;
&lt;td&gt;Package extensions&lt;/td&gt;
&lt;td&gt;Switch configuration sets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;What it is&lt;/td&gt;
&lt;td&gt;Single &lt;code&gt;.md&lt;/code&gt; file&lt;/td&gt;
&lt;td&gt;Directory (multiple components)&lt;/td&gt;
&lt;td&gt;JSON config object&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contains&lt;/td&gt;
&lt;td&gt;Instructions and workflows&lt;/td&gt;
&lt;td&gt;Skills + Hooks + MCP servers + Agents&lt;/td&gt;
&lt;td&gt;Skills + MCP + Hooks + Plugins + System Prompt + settings + permissions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Management commands&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;/skill&lt;/code&gt; / &lt;code&gt;$&amp;lt;skill-name&amp;gt;&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/plugin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;/profile&lt;/code&gt; / &lt;code&gt;cortex profile&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How to share&lt;/td&gt;
&lt;td&gt;Catalog / Stage / Git&lt;/td&gt;
&lt;td&gt;GitHub / local / catalog&lt;/td&gt;
&lt;td&gt;Stage / GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The containment hierarchy looks like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmermaid.ink%2Fimg%2FZmxvd2NoYXJ0IFRCCiAgICBzdWJncmFwaCBQcm9maWxlWyJQcm9maWxlIChUb3AtTGV2ZWwgUGFja2FnZSkiXQogICAgICAgIGRpcmVjdGlvbiBUQgogICAgICAgIHN1YmdyYXBoIFBsdWdpblsiUGx1Z2luIChFeHRlbnNpb24gVW5pdCkiXQogICAgICAgICAgICBkaXJlY3Rpb24gTFIKICAgICAgICAgICAgUFNbIlNraWxsIl0KICAgICAgICAgICAgUEhbIkhvb2siXQogICAgICAgICAgICBQTVsiTUNQIFNlcnZlciJdCiAgICAgICAgICAgIFBBWyJTdWJhZ2VudCJdCiAgICAgICAgZW5kCiAgICAgICAgc3ViZ3JhcGggRGlyZWN0WyJFbGVtZW50cyBQcm9maWxlIENhbiBJbmNsdWRlIERpcmVjdGx5Il0KICAgICAgICAgICAgZGlyZWN0aW9uIExSCiAgICAgICAgICAgIERTWyJTa2lsbCJdCiAgICAgICAgICAgIERIWyJIb29rIl0KICAgICAgICAgICAgRE1bIk1DUCBTZXJ2ZXIiXQogICAgICAgICAgICBEUFsiU3lzdGVtIFByb21wdCJdCiAgICAgICAgICAgIERFWyJlbnZWYXJzIC8gU2V0dGluZ3MiXQogICAgICAgIGVuZAogICAgZW5kCgogICAgc3R5bGUgUHJvZmlsZSBmaWxsOiMxMTU2N0Ysc3Ryb2tlOiMxMTU2N0YsY29sb3I6I0ZGRkZGRgogICAgc3R5bGUgUGx1Z2luIGZpbGw6IzI5QjVFOCxzdHJva2U6IzExNTY3Rixjb2xvcjojRkZGRkZGCiAgICBzdHlsZSBEaXJlY3QgZmlsbDojMTE1NjdGLHN0cm9rZTojRTY1MTAwLHN0cm9rZS1kYXNoYXJyYXk6NSAzLGNvbG9yOiNGRkZGRkYKICAgIHN0eWxlIFBTIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBQSCBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgUE0gZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0YKICAgIHN0eWxlIFBBIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBEUyBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgREggZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0YKICAgIHN0eWxlIERNIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBEUCBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgREUgZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0Y%3D" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmermaid.ink%2Fimg%2FZmxvd2NoYXJ0IFRCCiAgICBzdWJncmFwaCBQcm9maWxlWyJQcm9maWxlIChUb3AtTGV2ZWwgUGFja2FnZSkiXQogICAgICAgIGRpcmVjdGlvbiBUQgogICAgICAgIHN1YmdyYXBoIFBsdWdpblsiUGx1Z2luIChFeHRlbnNpb24gVW5pdCkiXQogICAgICAgICAgICBkaXJlY3Rpb24gTFIKICAgICAgICAgICAgUFNbIlNraWxsIl0KICAgICAgICAgICAgUEhbIkhvb2siXQogICAgICAgICAgICBQTVsiTUNQIFNlcnZlciJdCiAgICAgICAgICAgIFBBWyJTdWJhZ2VudCJdCiAgICAgICAgZW5kCiAgICAgICAgc3ViZ3JhcGggRGlyZWN0WyJFbGVtZW50cyBQcm9maWxlIENhbiBJbmNsdWRlIERpcmVjdGx5Il0KICAgICAgICAgICAgZGlyZWN0aW9uIExSCiAgICAgICAgICAgIERTWyJTa2lsbCJdCiAgICAgICAgICAgIERIWyJIb29rIl0KICAgICAgICAgICAgRE1bIk1DUCBTZXJ2ZXIiXQogICAgICAgICAgICBEUFsiU3lzdGVtIFByb21wdCJdCiAgICAgICAgICAgIERFWyJlbnZWYXJzIC8gU2V0dGluZ3MiXQogICAgICAgIGVuZAogICAgZW5kCgogICAgc3R5bGUgUHJvZmlsZSBmaWxsOiMxMTU2N0Ysc3Ryb2tlOiMxMTU2N0YsY29sb3I6I0ZGRkZGRgogICAgc3R5bGUgUGx1Z2luIGZpbGw6IzI5QjVFOCxzdHJva2U6IzExNTY3Rixjb2xvcjojRkZGRkZGCiAgICBzdHlsZSBEaXJlY3QgZmlsbDojMTE1NjdGLHN0cm9rZTojRTY1MTAwLHN0cm9rZS1kYXNoYXJyYXk6NSAzLGNvbG9yOiNGRkZGRkYKICAgIHN0eWxlIFBTIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBQSCBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgUE0gZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0YKICAgIHN0eWxlIFBBIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBEUyBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgREggZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0YKICAgIHN0eWxlIERNIGZpbGw6I0U4RjRGRCxzdHJva2U6IzExNTY3Rixjb2xvcjojMTE1NjdGCiAgICBzdHlsZSBEUCBmaWxsOiNFOEY0RkQsc3Ryb2tlOiMxMTU2N0YsY29sb3I6IzExNTY3RgogICAgc3R5bGUgREUgZmlsbDojRThGNEZELHN0cm9rZTojMTE1NjdGLGNvbG9yOiMxMTU2N0Y%3D" alt="Containment hierarchy of Profile, Plugin, and Skill" width="672" height="631"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skills and Plugins Sharing&lt;/strong&gt; lets you distribute Skills and Plugins within your organization with native Snowflake versioning.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is a Skill?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;A Skill is the smallest unit for injecting domain knowledge and procedures into the AI agent. It's a single &lt;code&gt;SKILL.md&lt;/code&gt; Markdown file that contains workflows and instructions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-skill/
  SKILL.md         ← required
  reference.md     ← optional (supplementary info the agent can reference)
  scripts/         ← optional (helper scripts called from the skill)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A basic &lt;code&gt;SKILL.md&lt;/code&gt; looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;data-onboarding&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Guide the process of adding a new data source to the team's data platform&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# When to use this skill&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; When the user asks to add a new table or data source
&lt;span class="p"&gt;-&lt;/span&gt; When they say "I want to ingest data" or "add a new source"

&lt;span class="gh"&gt;# Steps&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; Confirm the data source type (S3 / API / DB)
&lt;span class="p"&gt;2.&lt;/span&gt; Create the schema definition and a landing table in the &lt;span class="sb"&gt;`RAW`&lt;/span&gt; database
&lt;span class="p"&gt;3.&lt;/span&gt; Build the transformation layer using a Dynamic Table
&lt;span class="p"&gt;4.&lt;/span&gt; Set up data quality checks (NOT NULL, unique constraints)
&lt;span class="p"&gt;5.&lt;/span&gt; Notify the team's Slack channel when complete
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  How to invoke
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Type &lt;code&gt;/&lt;/code&gt; in chat and pick from the skill list&lt;/li&gt;
&lt;li&gt;Explicitly invoke with &lt;code&gt;$&amp;lt;skill-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The agent auto-invokes when user input semantically matches the &lt;code&gt;description&lt;/code&gt; field&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Auto-invocation fires when the agent matches the trigger conditions in &lt;code&gt;description&lt;/code&gt; against what the user typed. For explicit invocation, use &lt;code&gt;/skill&lt;/code&gt; or &lt;code&gt;$&amp;lt;skill-name&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Management
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CoCo Desktop&lt;/strong&gt;: Agent Settings panel → Skills.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CoCo CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cortex skill list              &lt;span class="c"&gt;# list available skills&lt;/span&gt;
cortex skill add &amp;lt;path&amp;gt;        &lt;span class="c"&gt;# add from local path / GitHub URL / Stage path&lt;/span&gt;
cortex skill publish ./my-skill &lt;span class="nt"&gt;--to-stage&lt;/span&gt; @MY_DB.MY_SCHEMA.MY_STAGE/skills/

&lt;span class="c"&gt;# After logging in to CoCo&lt;/span&gt;
/skill              &lt;span class="c"&gt;# list available skills&lt;/span&gt;
/skill-development  &lt;span class="c"&gt;# invoke the skill for building new skills&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Where skills live and their priority
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Location&lt;/th&gt;
&lt;th&gt;Path&lt;/th&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Project&lt;/td&gt;
&lt;td&gt;&lt;code&gt;.cortex/skills/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Workspace only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User&lt;/td&gt;
&lt;td&gt;&lt;code&gt;~/.snowflake/cortex/skills/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shared across all workspaces&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bundled&lt;/td&gt;
&lt;td&gt;Built into the app&lt;/td&gt;
&lt;td&gt;Read-only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub&lt;/td&gt;
&lt;td&gt;Under cache directory&lt;/td&gt;
&lt;td&gt;Fetched from remote&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Catalog&lt;/td&gt;
&lt;td&gt;Snowflake-managed&lt;/td&gt;
&lt;td&gt;Shared within the account&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  When to use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You want a specific business procedure to run the same way every time&lt;/li&gt;
&lt;li&gt;You want to share know-how with teammates in a reproducible form&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is a Plugin?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;A Plugin is an "extension unit" that bundles Skills, Hooks, MCP servers, and subagents into a single directory. Install it once and all related components become active.&lt;/p&gt;

&lt;p&gt;A couple of terms worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hook&lt;/strong&gt;: a script that runs automatically at specific events (e.g., before or after a tool call)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP server&lt;/strong&gt;: an external tool integration server following the Model Context Protocol (used for GitHub, Jira, etc.)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;my-plugin/
  .cortex-plugin/
    plugin.json   ← manifest (required)
  skills/
    my-skill/
      SKILL.md
  agents/
    my-agent.md
  .hooks.json     ← optional
  .mcp.json       ← optional
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The manifest looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"my-plugin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Plugin for custom workflows"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"skills"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"skills"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hooks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;skills&lt;/code&gt; field takes the name of the directory where Skills are stored (default: &lt;code&gt;skills/&lt;/code&gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Management
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CoCo Desktop&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Agent Settings panel → Plugins. You can add plugins via:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local folder&lt;/strong&gt;: specify a directory that has &lt;code&gt;.cortex-plugin/plugin.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: use &lt;code&gt;owner/repo&lt;/code&gt; format (SSH, GitLab, and Bitbucket also work)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Catalog&lt;/strong&gt;: import using a &lt;code&gt;snow://skill_catalog/...&lt;/code&gt; URI&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;CoCo CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cortex plugin list             &lt;span class="c"&gt;# list installed plugins&lt;/span&gt;
cortex plugin add owner/repo   &lt;span class="c"&gt;# install from GitHub&lt;/span&gt;
cortex plugin add ./my-plugin  &lt;span class="c"&gt;# install from local folder&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  When to use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You want to distribute a set of Skills, Hooks, and MCP servers together as a package&lt;/li&gt;
&lt;li&gt;You want to bundle the full extension environment for a customer demo or a specific engagement&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What is a Profile?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Overview
&lt;/h3&gt;

&lt;p&gt;A Profile is the top-level configuration package. It combines Skills, MCP servers, Hooks, Plugins, a system prompt, environment variables, settings overrides, and permission rules into one unit. Profiles can be distributed remotely from a Snowflake Stage or GitHub and applied in bulk per team or role.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;skillRepos&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Skills (distributed from Stage / GitHub)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mcpServers&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;MCP server configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;systemPromptRepo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Custom system prompt (&lt;code&gt;AGENTS.md&lt;/code&gt;, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;hooks&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Lifecycle hooks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;plugins&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Plugin references (plugins distributed via Profile appear as &lt;code&gt;origin: profile&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;envVars&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Environment variables&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;settingsOverrides&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;CoCo settings overrides (second in priority after Managed Settings)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;permissions&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Permission rules (&lt;code&gt;deny&lt;/code&gt; / &lt;code&gt;onlyAllow&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Security model
&lt;/h3&gt;

&lt;p&gt;Profile sits second in CoCo's settings priority hierarchy, right after Managed Settings (org-level policy):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Managed Settings (restrictions) &amp;gt; Profile overrides &amp;gt; Project Settings &amp;gt; Managed defaults &amp;gt; User Settings &amp;gt; defaults
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without going into Managed Settings in detail, the key constraints on Profile permission rules are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Profile cannot grant access that Managed Settings has explicitly denied&lt;/li&gt;
&lt;li&gt;A Profile cannot expand the Managed Settings allowlist&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A Profile can only restrict access further — not expand it&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words, admins set the security boundary in Managed Settings, and Profiles layer role-specific restrictions within that boundary.&lt;/p&gt;

&lt;h3&gt;
  
  
  Management
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CoCo Desktop&lt;/strong&gt;: Agent Settings panel → Profiles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CoCo CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Publish a Profile to Stage (--skill-stage specifies the Stage for Skills distribution)&lt;/span&gt;
cortex profile publish data-analyst &lt;span class="nt"&gt;--skill-stage&lt;/span&gt; @MY_DB.MY_SCHEMA.MY_STAGE/skills/

&lt;span class="c"&gt;# Switch Profile&lt;/span&gt;
&lt;span class="c"&gt;# Use the /profile command to switch interactively&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting an org-wide default&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;In the org's Managed Settings (&lt;code&gt;managed-settings.json&lt;/code&gt;), set &lt;code&gt;defaults.profileName&lt;/code&gt; to configure a default Profile for all users. Individual users can still override this.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"defaults"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"profileName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"data-analyst"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As of July 2026, Profile is available in both CoCo CLI and CoCo Desktop, but there is no dedicated documentation page yet. The behavior described here may change significantly at general release — avoid using Profile in production for now.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  When to use
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;You want to distribute a complete set of Skills + MCP + Prompt + permission restrictions per role (sales, engineering, analytics)&lt;/li&gt;
&lt;li&gt;You want to switch connections, models, and settings per engagement&lt;/li&gt;
&lt;li&gt;You're an admin applying role-specific feature restrictions within a security boundary&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Skills and Plugins Sharing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The problem with previous sharing methods
&lt;/h3&gt;

&lt;p&gt;Before this feature, sharing Skills and Plugins with a team meant using Git repos or Snowflake Stages. Git worked but required managing repo access permissions, and distributing to team members unfamiliar with Git was cumbersome. Stage-based sharing could use Snowflake roles for access control, but had no version management or catalog browsing.&lt;/p&gt;

&lt;p&gt;Skills and Plugins Sharing, added in 2026, addresses these problems. Skills and Plugins are managed natively in Snowflake, available as a Preview Feature in all accounts.&lt;/p&gt;

&lt;p&gt;From Snowsight's Horizon Catalog → Skills &amp;amp; Plugins page, you can search and manage all shared Skills and Plugins in your account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ihu4mor9nlv7reabtjl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5ihu4mor9nlv7reabtjl.png" alt="Snowsight Skills &amp;amp; Plugins catalog list view showing type, author, and certification filters" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;Skills and Plugins registered in the catalog are stored in your Snowflake account as &lt;code&gt;CORTEX EXTENSION&lt;/code&gt; objects. Like TABLE or FUNCTION, &lt;code&gt;CORTEX EXTENSION&lt;/code&gt; is a DDL object in Snowflake, and access is managed with GRANT — no Git permission setup required.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CORTEX EXTENSION (TYPE=SKILL or TYPE=PLUGIN)
  └── versioned storage
  └── access control via Snowflake roles
  └── referenced via snow://skill_catalog/... URI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Cortex Extension objects are stored by default in the &lt;code&gt;SKILL_SHARING&lt;/code&gt; schema of your personal DB (auto-created by Snowflake).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Sharing options: access and discoverability
&lt;/h3&gt;

&lt;p&gt;Two concepts control sharing, and they're &lt;strong&gt;independent&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;What it controls&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Access (RBAC)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Which roles can install and use the Skill or Plugin&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Discoverability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Whether it appears in catalog search&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Combining these gives two sharing styles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private sharing&lt;/strong&gt;: turn discoverability off and share the catalog link with specific roles only. It won't appear in search, but anyone with the link can access it (think "unlisted video").&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Role / PUBLIC sharing&lt;/strong&gt;: grant access to a role + enable discoverability, so the Skill or Plugin is findable in the catalog.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Publishing to the catalog
&lt;/h3&gt;

&lt;h4&gt;
  
  
  From CoCo Desktop
&lt;/h4&gt;

&lt;p&gt;For a Skill:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent Settings → Skills, select the skill&lt;/li&gt;
&lt;li&gt;Click "Publish to Skills Catalog" (the cloud upload icon)&lt;/li&gt;
&lt;li&gt;The workflow runs automatically and returns a &lt;code&gt;snow://skill_catalog/...&lt;/code&gt; URI&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For a Plugin:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agent Settings → Plugins, select the plugin&lt;/li&gt;
&lt;li&gt;Click "Publish to Plugins Catalog"&lt;/li&gt;
&lt;li&gt;Same flow — returns a &lt;code&gt;snow://skill_catalog/...&lt;/code&gt; URI&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  From CoCo in Snowsight
&lt;/h4&gt;

&lt;p&gt;Just type &lt;code&gt;Share skill &amp;lt;skill-name&amp;gt;&lt;/code&gt; in chat to start sharing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As of July 2026, sharing Plugins from CoCo in Snowsight is not yet supported.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  From CoCo CLI
&lt;/h4&gt;

&lt;p&gt;In CoCo CLI, invoke the &lt;code&gt;/share-skill-and-plugin&lt;/code&gt; skill to publish to the catalog:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /share-skill-and-plugin my-skill
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;CoCo will confirm the target role (default: PUBLIC) and discoverability (default: enabled), then return the &lt;code&gt;snow://skill_catalog/...&lt;/code&gt; URI on completion. You can also use the &lt;code&gt;/skill&lt;/code&gt; command and select the share option for a specific skill.&lt;/p&gt;

&lt;p&gt;Only Skills and Plugins you created locally can be published. Items already imported from the catalog cannot be re-published.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;cortex skill publish --to-stage&lt;/code&gt; distributes files to a Snowflake Stage. This is separate from registering to the catalog (CORTEX EXTENSION) — don't confuse the two.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Importing from the catalog
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;CoCo Desktop&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search for the target in Snowsight's Horizon Catalog → Skills &amp;amp; Plugins&lt;/li&gt;
&lt;li&gt;Copy the &lt;code&gt;snow://skill_catalog/...&lt;/code&gt; URI&lt;/li&gt;
&lt;li&gt;Agent Settings → Skills (or Plugins) → &lt;code&gt;+&lt;/code&gt; → "Add from Skills Catalog"&lt;/li&gt;
&lt;li&gt;Paste the URI and import&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;CoCo CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;cortex skill add snow://skill_catalog/MY_DB.MY_SCHEMA.MY_SKILL/versions/version&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;URI format is &lt;code&gt;snow://skill_catalog/DB.SCHEMA.EXTENSION_NAME&lt;/code&gt; (dot-separated, not slashes)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;version$1&lt;/code&gt; refers to the first published version&lt;/li&gt;
&lt;li&gt;If you omit the version, the latest certified version is used when one exists, otherwise the latest version&lt;/li&gt;
&lt;li&gt;Imported Skills and Plugins get a &lt;code&gt;CATALOG&lt;/code&gt; badge and can be updated with the &lt;code&gt;Sync&lt;/code&gt; button or these commands:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Updating via CoCo CLI&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Update a specific Skill (provide the snow:// URI)&lt;/span&gt;
cortex skill update snow://skill_catalog/MY_DB.MY_SCHEMA.MY_SKILL

&lt;span class="c"&gt;# Update a specific Plugin&lt;/span&gt;
cortex plugin update my-plugin

&lt;span class="c"&gt;# Update all installed Plugins at once&lt;/span&gt;
cortex plugin update
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Catalog vs. Stage: which to use
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Skills Catalog&lt;/th&gt;
&lt;th&gt;Stage-based&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Version management&lt;/td&gt;
&lt;td&gt;Yes (CORTEX EXTENSION)&lt;/td&gt;
&lt;td&gt;No (file overwrite)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Catalog browsing&lt;/td&gt;
&lt;td&gt;Searchable in Snowsight&lt;/td&gt;
&lt;td&gt;Direct path only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Access control&lt;/td&gt;
&lt;td&gt;Snowflake roles&lt;/td&gt;
&lt;td&gt;Snowflake roles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Git required&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fine-grained file control&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The catalog is the right choice when your team needs version management and catalog browsing. Stage-based distribution suits teams already running a Stage workflow or needing fine-grained file-level control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Governance
&lt;/h3&gt;

&lt;p&gt;Users with ACCOUNTADMIN can manage all Skills and Plugins in the account from the Snowsight &lt;strong&gt;Horizon Catalog → Skills &amp;amp; Plugins&lt;/strong&gt; page.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3a6dm7vrj6hv9ji07kmg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3a6dm7vrj6hv9ji07kmg.png" alt="Skill detail view showing version selection, certification status, access settings, and telemetry (28-day install and usage counts)" width="800" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; As of July 30, 2026, only Skills can be previewed in the catalog. Plugin contents are not visible from the catalog UI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Certify&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Certify a version and add a Certified badge. Users see the latest certified version first.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Change access&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Change which roles can install and use it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Change discoverability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Toggle visibility in catalog search.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Change owner&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Reassign ownership of the Cortex Extension object.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Delete&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Remove the Skill or Plugin from the catalog.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;View telemetry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;View 28-day install and usage counts.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When you perform a governance action for the first time, you'll be prompted to select a database where governed objects will be stored. After that, all governed objects are centrally managed in that database (separate from the owner's personal DB).&lt;/p&gt;

&lt;h3&gt;
  
  
  Limitations
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cross-account sharing is not supported — same Snowflake account only&lt;/li&gt;
&lt;li&gt;Security scanning for Skills and Plugins is not yet available&lt;/li&gt;
&lt;li&gt;Locally created Skills and Plugins don't appear in catalog search until you explicitly publish them&lt;/li&gt;
&lt;li&gt;Export outside of Snowflake is not supported&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Use Case Scenarios
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Scenario 1: Setting Up a Customer Demo Environment
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Switch to customer A's Snowflake connection with a Profile
   → /profile switch customer-a

2. Install the full set of Skills and Hooks for customer A via a Plugin
   → Agent Settings → Plugins → Add from GitHub
   or: cortex plugin add owner/customer-a-plugin

3. Invoke a Skill to run specific procedures
   → /semantic-view (example: semantic view creation skill)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The division of labor: Profile switches the connection, Plugin assembles the tools, Skill executes the specific procedures.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scenario 2: Distributing a Skill to Your Team
&lt;/h3&gt;

&lt;p&gt;When you only need to share a specific workflow (e.g., a semantic view creation procedure), publishing a single Skill to the catalog or a Stage is the simplest path.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Publish to catalog (via CoCo Desktop GUI)&lt;/span&gt;
&lt;span class="c"&gt;# → share the snow://skill_catalog/... URI and distribution is done&lt;/span&gt;

&lt;span class="c"&gt;# Via Stage (CoCo CLI)&lt;/span&gt;
cortex skill publish ./my-skill &lt;span class="nt"&gt;--to-stage&lt;/span&gt; @SHARED.SKILLS.TEAM_LIBRARY/my-skill/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Scenario 3: Standardizing Environments Across Teams
&lt;/h3&gt;

&lt;p&gt;For distributing different environments to multiple roles (sales, engineering, data analytics), use a Profile. It applies Skills, MCP servers, a system prompt, and connection settings all at once.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Publish role-specific Profiles (CoCo CLI)&lt;/span&gt;
cortex profile publish sales-engineer &lt;span class="nt"&gt;--skill-stage&lt;/span&gt; @SHARED.PROFILES.STAGE/se/
cortex profile publish data-analyst    &lt;span class="nt"&gt;--skill-stage&lt;/span&gt; @SHARED.PROFILES.STAGE/analyst/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skill&lt;/strong&gt; is the smallest unit — it defines &lt;em&gt;how&lt;/em&gt; to do something&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plugin&lt;/strong&gt; is a functional module bundling Skills, MCP servers, Hooks, and Agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Profile&lt;/strong&gt; is the top-level distribution package — it covers everything a Plugin provides, plus a system prompt, settings overrides, and permission restrictions tailored to a user persona&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Three axes for choosing a sharing method:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scope&lt;/th&gt;
&lt;th&gt;Recommended approach&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Personal (workspace)&lt;/td&gt;
&lt;td&gt;Project skills (&lt;code&gt;.cortex/skills/&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Small team (Git-based)&lt;/td&gt;
&lt;td&gt;Install via GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Organization-wide (Snowflake role management)&lt;/td&gt;
&lt;td&gt;Skills and Plugins Sharing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Role-based environment distribution&lt;/td&gt;
&lt;td&gt;Profile + Stage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CoCo's extension system has three layers at different levels of granularity. Choosing the right level for your use case keeps configuration simple while maximizing reusability.&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/skills" rel="noopener noreferrer"&gt;Skills in CoCo Desktop (Snowflake official docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-desktop/plugins" rel="noopener noreferrer"&gt;Plugins in CoCo Desktop (Snowflake official docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.snowflake.com/en/user-guide/cortex-code/extensibility" rel="noopener noreferrer"&gt;CoCo CLI extensibility (Snowflake official docs)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.snowflake.com/en/user-guide/cortex-code/cortex-code-skill-plugin-sharing" rel="noopener noreferrer"&gt;Share skills and plugins (Snowflake official docs)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Promotion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Snowflake What's New Updates on X
&lt;/h3&gt;

&lt;p&gt;I share Snowflake What's New updates on X. Follow for the latest insights:&lt;/p&gt;

&lt;h4&gt;
  
  
  English Version
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://x.com/snow_new_en" rel="noopener noreferrer"&gt;Snowflake What's New Bot (English Version)&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Japanese Version
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://x.com/snow_new_jp" rel="noopener noreferrer"&gt;Snowflake's What's New Bot (Japanese Version)&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Change Log
&lt;/h2&gt;

&lt;p&gt;(20260804) Initial post&lt;/p&gt;

&lt;h2&gt;
  
  
  Original Japanese Article
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://zenn.dev/snowflakejp/articles/cortex_code_skill_plugin_profile" rel="noopener noreferrer"&gt;Snowflake CoCo (Cortex Code) の Skill・Plugin の違いと使い分け、共有方法&lt;/a&gt;&lt;/p&gt;

</description>
      <category>snowflake</category>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
