Buckets:

HuggingFaceDocBuilder's picture
download
raw
32 kB
import{s as de,o as ce,n as B}from"../chunks/scheduler.4048030c.js";import{S as he,i as ge,e as b,s as u,c as g,h as Me,a as U,d as n,b as d,f as me,j as M,g as J,k as ue,l as ke,m as i,n as k,t as w,o as C,p as T}from"../chunks/index.5d0b9360.js";import{C as we,H as Z,E as Ce}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.8dfdfd7d.js";import{C as H}from"../chunks/CodeBlock.da9970c4.js";import{H as Vt,a as G}from"../chunks/HfOption.0fd5270b.js";function Te(v){let l,f="<thead><tr><th>Scope</th> <th>Path</th> <th>Applies to</th></tr></thead> <tbody><tr><td>Personal</td> <td><code>~/.claude/skills/&lt;name&gt;/SKILL.md</code></td> <td>All your projects</td></tr> <tr><td>Project</td> <td><code>.claude/skills/&lt;name&gt;/SKILL.md</code></td> <td>This project only</td></tr></tbody>",s,o,r="Claude Code also watches for changes — adding, editing, or removing a skill takes effect within the current session without restarting.";return{c(){l=b("table"),l.innerHTML=f,s=u(),o=b("p"),o.textContent=r},l(a){l=U(a,"TABLE",{"data-svelte-h":!0}),J(l)!=="svelte-1md3uap"&&(l.innerHTML=f),s=d(a),o=U(a,"P",{"data-svelte-h":!0}),J(o)!=="svelte-15cisux"&&(o.textContent=r)},m(a,m){i(a,l,m),i(a,s,m),i(a,o,m)},p:B,d(a){a&&(n(l),n(s),n(o))}}}function be(v){let l,f="<thead><tr><th>Scope</th> <th>Path</th></tr></thead> <tbody><tr><td>Repository</td> <td><code>.agents/skills/&lt;name&gt;/SKILL.md</code></td></tr> <tr><td>User</td> <td><code>~/.agents/skills/&lt;name&gt;/SKILL.md</code></td></tr> <tr><td>Admin</td> <td><code>/etc/codex/skills/&lt;name&gt;/SKILL.md</code></td></tr></tbody>",s,o,r="Codex discovers skills from all three locations; when the same skill name appears in more than one, the repository copy is used first, then the user copy, then the admin copy.";return{c(){l=b("table"),l.innerHTML=f,s=u(),o=b("p"),o.textContent=r},l(a){l=U(a,"TABLE",{"data-svelte-h":!0}),J(l)!=="svelte-18nll9t"&&(l.innerHTML=f),s=d(a),o=U(a,"P",{"data-svelte-h":!0}),J(o)!=="svelte-yrlhuc"&&(o.textContent=r)},m(a,m){i(a,l,m),i(a,s,m),i(a,o,m)},p:B,d(a){a&&(n(l),n(s),n(o))}}}function Ue(v){let l,f="<strong>Project-local paths:</strong>",s,o,r="<li><code>.opencode/skills/&lt;name&gt;/SKILL.md</code></li> <li><code>.claude/skills/&lt;name&gt;/SKILL.md</code></li> <li><code>.agents/skills/&lt;name&gt;/SKILL.md</code></li>",a,m,c="<strong>Global paths:</strong>",t,p,_="<li><code>~/.config/opencode/skills/&lt;name&gt;/SKILL.md</code></li> <li><code>~/.claude/skills/&lt;name&gt;/SKILL.md</code></li> <li><code>~/.agents/skills/&lt;name&gt;/SKILL.md</code></li>",x,j,h="OpenCode walks up from the current working directory to the git root, checking each level.";return{c(){l=b("p"),l.innerHTML=f,s=u(),o=b("ul"),o.innerHTML=r,a=u(),m=b("p"),m.innerHTML=c,t=u(),p=b("ul"),p.innerHTML=_,x=u(),j=b("p"),j.textContent=h},l(y){l=U(y,"P",{"data-svelte-h":!0}),J(l)!=="svelte-5tx8hc"&&(l.innerHTML=f),s=d(y),o=U(y,"UL",{"data-svelte-h":!0}),J(o)!=="svelte-1mfq0eo"&&(o.innerHTML=r),a=d(y),m=U(y,"P",{"data-svelte-h":!0}),J(m)!=="svelte-12p7ggq"&&(m.innerHTML=c),t=d(y),p=U(y,"UL",{"data-svelte-h":!0}),J(p)!=="svelte-1bcqgso"&&(p.innerHTML=_),x=d(y),j=U(y,"P",{"data-svelte-h":!0}),J(j)!=="svelte-6g7hdd"&&(j.textContent=h)},m(y,I){i(y,l,I),i(y,s,I),i(y,o,I),i(y,a,I),i(y,m,I),i(y,t,I),i(y,p,I),i(y,x,I),i(y,j,I)},p:B,d(y){y&&(n(l),n(s),n(o),n(a),n(m),n(t),n(p),n(x),n(j))}}}function ve(v){let l,f="<thead><tr><th>Scope</th> <th>Path</th></tr></thead> <tbody><tr><td>Project</td> <td><code>.pi/skills/&lt;name&gt;/SKILL.md</code></td></tr> <tr><td>Shared repo tree</td> <td><code>.agents/skills/&lt;name&gt;/SKILL.md</code></td></tr> <tr><td>User</td> <td><code>~/.pi/agent/skills/&lt;name&gt;/SKILL.md</code></td></tr> <tr><td>Shared user</td> <td><code>~/.agents/skills/&lt;name&gt;/SKILL.md</code></td></tr></tbody>",s,o,r="Pi scans the Pi-specific paths plus the shared <code>.agents/skills/</code> tree, so the same skill can work in Pi and other harnesses without duplication.";return{c(){l=b("table"),l.innerHTML=f,s=u(),o=b("p"),o.innerHTML=r},l(a){l=U(a,"TABLE",{"data-svelte-h":!0}),J(l)!=="svelte-1u13v9d"&&(l.innerHTML=f),s=d(a),o=U(a,"P",{"data-svelte-h":!0}),J(o)!=="svelte-1akfg5z"&&(o.innerHTML=r)},m(a,m){i(a,l,m),i(a,s,m),i(a,o,m)},p:B,d(a){a&&(n(l),n(s),n(o))}}}function ye(v){let l,f,s,o,r,a,m,c;return l=new G({props:{id:"tool",option:"Claude Code",$$slots:{default:[Te]},$$scope:{ctx:v}}}),s=new G({props:{id:"tool",option:"Codex",$$slots:{default:[be]},$$scope:{ctx:v}}}),r=new G({props:{id:"tool",option:"OpenCode",$$slots:{default:[Ue]},$$scope:{ctx:v}}}),m=new G({props:{id:"tool",option:"Pi",$$slots:{default:[ve]},$$scope:{ctx:v}}}),{c(){g(l.$$.fragment),f=u(),g(s.$$.fragment),o=u(),g(r.$$.fragment),a=u(),g(m.$$.fragment)},l(t){M(l.$$.fragment,t),f=d(t),M(s.$$.fragment,t),o=d(t),M(r.$$.fragment,t),a=d(t),M(m.$$.fragment,t)},m(t,p){k(l,t,p),i(t,f,p),k(s,t,p),i(t,o,p),k(r,t,p),i(t,a,p),k(m,t,p),c=!0},p(t,p){const _={};p&2&&(_.$$scope={dirty:p,ctx:t}),l.$set(_);const x={};p&2&&(x.$$scope={dirty:p,ctx:t}),s.$set(x);const j={};p&2&&(j.$$scope={dirty:p,ctx:t}),r.$set(j);const h={};p&2&&(h.$$scope={dirty:p,ctx:t}),m.$set(h)},i(t){c||(w(l.$$.fragment,t),w(s.$$.fragment,t),w(r.$$.fragment,t),w(m.$$.fragment,t),c=!0)},o(t){C(l.$$.fragment,t),C(s.$$.fragment,t),C(r.$$.fragment,t),C(m.$$.fragment,t),c=!1},d(t){t&&(n(f),n(o),n(a)),T(l,t),T(s,t),T(r,t),T(m,t)}}}function Le(v){let l,f="Skills are distributed as plugins via marketplaces. Inside a Claude Code session, add a marketplace, then install the plugin that contains the skill:",s,o,r,a,m="Use <code>/plugin</code> to browse, enable, and disable installed plugins. Plugin skills are namespaced as <code>/&lt;plugin-name&gt;:&lt;skill-name&gt;</code> (for example, <code>/hf-cli:download-model</code>) to prevent conflicts.",c;return o=new H({props:{code:"JTJGcGx1Z2luJTIwbWFya2V0cGxhY2UlMjBhZGQlMjBodWdnaW5nZmFjZSUyRnNraWxscyUwQSUyRnBsdWdpbiUyMGluc3RhbGwlMjBoZi1jbGklNDBodWdnaW5nZmFjZS1za2lsbHM=",highlighted:`/plugin marketplace add huggingface/skills
/plugin install hf-cli@huggingface-skills`,wrap:!1}}),{c(){l=b("p"),l.textContent=f,s=u(),g(o.$$.fragment),r=u(),a=b("p"),a.innerHTML=m},l(t){l=U(t,"P",{"data-svelte-h":!0}),J(l)!=="svelte-1jzdzfi"&&(l.textContent=f),s=d(t),M(o.$$.fragment,t),r=d(t),a=U(t,"P",{"data-svelte-h":!0}),J(a)!=="svelte-1wqw58o"&&(a.innerHTML=m)},m(t,p){i(t,l,p),i(t,s,p),k(o,t,p),i(t,r,p),i(t,a,p),c=!0},p:B,i(t){c||(w(o.$$.fragment,t),c=!0)},o(t){C(o.$$.fragment,t),c=!1},d(t){t&&(n(l),n(s),n(r),n(a)),T(o,t)}}}function Je(v){let l,f="Use the built-in skill installer for curated skills:",s,o,r,a,m="Or, you can install the entire Hugging Face plugin:",c,t,p,_,x="Then select ‘Hugging Face’ and click ‘Install plugin’.",j;return o=new H({props:{code:"JTI0c2tpbGwtaW5zdGFsbGVyJTIwaGYtY2xp",highlighted:"$skill-installer hf-cli",wrap:!1}}),t=new H({props:{code:"JTJGcGx1Z2lucw==",highlighted:"/plugins",wrap:!1}}),{c(){l=b("p"),l.textContent=f,s=u(),g(o.$$.fragment),r=u(),a=b("p"),a.textContent=m,c=u(),g(t.$$.fragment),p=u(),_=b("p"),_.textContent=x},l(h){l=U(h,"P",{"data-svelte-h":!0}),J(l)!=="svelte-dlumj0"&&(l.textContent=f),s=d(h),M(o.$$.fragment,h),r=d(h),a=U(h,"P",{"data-svelte-h":!0}),J(a)!=="svelte-1wn2tpu"&&(a.textContent=m),c=d(h),M(t.$$.fragment,h),p=d(h),_=U(h,"P",{"data-svelte-h":!0}),J(_)!=="svelte-elh9x4"&&(_.textContent=x)},m(h,y){i(h,l,y),i(h,s,y),k(o,h,y),i(h,r,y),i(h,a,y),i(h,c,y),k(t,h,y),i(h,p,y),i(h,_,y),j=!0},p:B,i(h){j||(w(o.$$.fragment,h),w(t.$$.fragment,h),j=!0)},o(h){C(o.$$.fragment,h),C(t.$$.fragment,h),j=!1},d(h){h&&(n(l),n(s),n(r),n(a),n(c),n(p),n(_)),T(o,h),T(t,h)}}}function xe(v){let l,f="Create the skill directory in any supported location and add a <code>SKILL.md</code> file:",s,o,r,a,m="This will create the skill directory and add the <code>SKILL.md</code> file in <code>.agents/skills/hf-cli/SKILL.md</code>.",c,t,p="OpenCode discovers it automatically.",_,x,j="You can control which skills agents may use via <code>opencode.json</code>:",h,y,I;return o=new H({props:{code:"aGYlMjBza2lsbHMlMjBhZGQ=",highlighted:"hf skills add",wrap:!1}}),y=new H({props:{code:"JTdCJTBBJTIwJTIwJTIycGVybWlzc2lvbiUyMiUzQSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMnNraWxsJTIyJTNBJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIyKiUyMiUzQSUyMCUyMmFsbG93JTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIyZXhwZXJpbWVudGFsLSolMjIlM0ElMjAlMjJhc2slMjIlMEElMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlN0QlMEElN0Q=",highlighted:`<span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;permission&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;skill&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">&quot;*&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;allow&quot;</span><span class="hljs-punctuation">,</span>
<span class="hljs-attr">&quot;experimental-*&quot;</span><span class="hljs-punctuation">:</span> <span class="hljs-string">&quot;ask&quot;</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>`,wrap:!1}}),{c(){l=b("p"),l.innerHTML=f,s=u(),g(o.$$.fragment),r=u(),a=b("p"),a.innerHTML=m,c=u(),t=b("p"),t.textContent=p,_=u(),x=b("p"),x.innerHTML=j,h=u(),g(y.$$.fragment)},l(L){l=U(L,"P",{"data-svelte-h":!0}),J(l)!=="svelte-3g0y7p"&&(l.innerHTML=f),s=d(L),M(o.$$.fragment,L),r=d(L),a=U(L,"P",{"data-svelte-h":!0}),J(a)!=="svelte-1ay48n7"&&(a.innerHTML=m),c=d(L),t=U(L,"P",{"data-svelte-h":!0}),J(t)!=="svelte-22q5l1"&&(t.textContent=p),_=d(L),x=U(L,"P",{"data-svelte-h":!0}),J(x)!=="svelte-ylw6vv"&&(x.innerHTML=j),h=d(L),M(y.$$.fragment,L)},m(L,S){i(L,l,S),i(L,s,S),k(o,L,S),i(L,r,S),i(L,a,S),i(L,c,S),i(L,t,S),i(L,_,S),i(L,x,S),i(L,h,S),k(y,L,S),I=!0},p:B,i(L){I||(w(o.$$.fragment,L),w(y.$$.fragment,L),I=!0)},o(L){C(o.$$.fragment,L),C(y.$$.fragment,L),I=!1},d(L){L&&(n(l),n(s),n(r),n(a),n(c),n(t),n(_),n(x),n(h)),T(o,L),T(y,L)}}}function _e(v){let l,f="Pi discovers the shared <code>.agents/skills/</code> tree that <code>hf skills add</code> creates, so the simplest install flow is:",s,o,r,a,m="For one-off testing, you can also load a skill explicitly with <code>pi --skill /absolute/path/to/SKILL.md</code>.",c;return o=new H({props:{code:"JTIzJTIwQ3JlYXRlcyUyMC5hZ2VudHMlMkZza2lsbHMlMkZoZi1jbGklMkZTS0lMTC5tZCUwQWhmJTIwc2tpbGxzJTIwYWRkJTBBJTBBJTIzJTIwU3RhcnQlMjBQaSUyMGluJTIwdGhlJTIwc2FtZSUyMHJlcG9zaXRvcnklMEFwaQ==",highlighted:`<span class="hljs-comment"># Creates .agents/skills/hf-cli/SKILL.md</span>
hf skills add
<span class="hljs-comment"># Start Pi in the same repository</span>
pi`,wrap:!1}}),{c(){l=b("p"),l.innerHTML=f,s=u(),g(o.$$.fragment),r=u(),a=b("p"),a.innerHTML=m},l(t){l=U(t,"P",{"data-svelte-h":!0}),J(l)!=="svelte-6opnah"&&(l.innerHTML=f),s=d(t),M(o.$$.fragment,t),r=d(t),a=U(t,"P",{"data-svelte-h":!0}),J(a)!=="svelte-cgf1rq"&&(a.innerHTML=m)},m(t,p){i(t,l,p),i(t,s,p),k(o,t,p),i(t,r,p),i(t,a,p),c=!0},p:B,i(t){c||(w(o.$$.fragment,t),c=!0)},o(t){C(o.$$.fragment,t),c=!1},d(t){t&&(n(l),n(s),n(r),n(a)),T(o,t)}}}function je(v){let l,f,s,o,r,a,m,c;return l=new G({props:{id:"tool",option:"Claude Code",$$slots:{default:[Le]},$$scope:{ctx:v}}}),s=new G({props:{id:"tool",option:"Codex",$$slots:{default:[Je]},$$scope:{ctx:v}}}),r=new G({props:{id:"tool",option:"OpenCode",$$slots:{default:[xe]},$$scope:{ctx:v}}}),m=new G({props:{id:"tool",option:"Pi",$$slots:{default:[_e]},$$scope:{ctx:v}}}),{c(){g(l.$$.fragment),f=u(),g(s.$$.fragment),o=u(),g(r.$$.fragment),a=u(),g(m.$$.fragment)},l(t){M(l.$$.fragment,t),f=d(t),M(s.$$.fragment,t),o=d(t),M(r.$$.fragment,t),a=d(t),M(m.$$.fragment,t)},m(t,p){k(l,t,p),i(t,f,p),k(s,t,p),i(t,o,p),k(r,t,p),i(t,a,p),k(m,t,p),c=!0},p(t,p){const _={};p&2&&(_.$$scope={dirty:p,ctx:t}),l.$set(_);const x={};p&2&&(x.$$scope={dirty:p,ctx:t}),s.$set(x);const j={};p&2&&(j.$$scope={dirty:p,ctx:t}),r.$set(j);const h={};p&2&&(h.$$scope={dirty:p,ctx:t}),m.$set(h)},i(t){c||(w(l.$$.fragment,t),w(s.$$.fragment,t),w(r.$$.fragment,t),w(m.$$.fragment,t),c=!0)},o(t){C(l.$$.fragment,t),C(s.$$.fragment,t),C(r.$$.fragment,t),C(m.$$.fragment,t),c=!1},d(t){t&&(n(f),n(o),n(a)),T(l,t),T(s,t),T(r,t),T(m,t)}}}function Ie(v){let l,f;return l=new H({props:{code:"JTIzJTIwSW1wbGljaXQlMjAlRTIlODAlOTQlMjBDbGF1ZGUlMjBtYXRjaGVzJTIweW91ciUyMHJlcXVlc3QlMjB0byUyMHRoZSUyMHNraWxsJTIwZGVzY3JpcHRpb24lMEFEb3dubG9hZCUyMHRoZSUyMGxhdGVzdCUyMHZlcnNpb24lMjBvZiUyMG1ldGEtbGxhbWElMkZMbGFtYS00LVNjb3V0LTE3Qi0xNkUlMEElMEElMjMlMjBFeHBsaWNpdCUyMCVFMiU4MCU5NCUyMGludm9rZSUyMGElMjBwbHVnaW4lMjBza2lsbCUyMGJ5JTIwaXRzJTIwbmFtZXNwYWNlZCUyMG5hbWUlMEElMkZoZi1jbGklM0Fkb3dubG9hZC1tb2RlbA==",highlighted:`# Implicit — Claude matches your request to the skill description
Download the latest version of meta-llama/Llama-4-Scout-17B-16E
# Explicit — invoke a plugin skill by its namespaced name
/hf-cli:download-model`,wrap:!1}}),{c(){g(l.$$.fragment)},l(s){M(l.$$.fragment,s)},m(s,o){k(l,s,o),f=!0},p:B,i(s){f||(w(l.$$.fragment,s),f=!0)},o(s){C(l.$$.fragment,s),f=!1},d(s){T(l,s)}}}function Se(v){let l,f;return l=new H({props:{code:"JTIzJTIwSW1wbGljaXQlMjAlRTIlODAlOTQlMjBDb2RleCUyMHNlbGVjdHMlMjBiYXNlZCUyMG9uJTIwdGFzayUyMG1hdGNoaW5nJTBBY29kZXglMjAlMjJVcGxvYWQlMjBteSUyMG1vZGVsJTIwdG8lMjB0aGUlMjBIdWIlMjIlMEElMEElMjMlMjBFeHBsaWNpdCUyMCVFMiU4MCU5NCUyMG1lbnRpb24lMjBieSUyMG5hbWUlMEElMjRoZi1jbGk=",highlighted:`<span class="hljs-comment"># Implicit — Codex selects based on task matching</span>
codex <span class="hljs-string">&quot;Upload my model to the Hub&quot;</span>
<span class="hljs-comment"># Explicit — mention by name</span>
<span class="hljs-variable">$hf</span>-cli`,wrap:!1}}),{c(){g(l.$$.fragment)},l(s){M(l.$$.fragment,s)},m(s,o){k(l,s,o),f=!0},p:B,i(s){f||(w(l.$$.fragment,s),f=!0)},o(s){C(l.$$.fragment,s),f=!1},d(s){T(l,s)}}}function Ge(v){let l,f="Agents invoke skills via the native <code>skill</code> tool by passing the skill name. OpenCode matches tasks to skills automatically based on the description in frontmatter.";return{c(){l=b("p"),l.innerHTML=f},l(s){l=U(s,"P",{"data-svelte-h":!0}),J(l)!=="svelte-1g65d7z"&&(l.innerHTML=f)},m(s,o){i(s,l,o)},p:B,d(s){s&&n(l)}}}function He(v){let l,f;return l=new H({props:{code:"JTIzJTIwSW1wbGljaXQlMjAlRTIlODAlOTQlMjBQaSUyMHNlbGVjdHMlMjBiYXNlZCUyMG9uJTIwdGFzayUyMG1hdGNoaW5nJTBBVXBsb2FkJTIwbXklMjBtb2RlbCUyMHRvJTIwdGhlJTIwSHViJTBBJTBBJTIzJTIwRXhwbGljaXQlMjAlRTIlODAlOTQlMjBmb3JjZSUyMHRoZSUyMHNraWxsJTBBJTJGc2tpbGwlM0FoZi1jbGklMjBVcGxvYWQlMjBteSUyMG1vZGVsJTIwdG8lMjB0aGUlMjBIdWI=",highlighted:`# Implicit — Pi selects based on task matching
Upload my model to the Hub
# Explicit — force the skill
/skill:hf-cli Upload my model to the Hub`,wrap:!1}}),{c(){g(l.$$.fragment)},l(s){M(l.$$.fragment,s)},m(s,o){k(l,s,o),f=!0},p:B,i(s){f||(w(l.$$.fragment,s),f=!0)},o(s){C(l.$$.fragment,s),f=!1},d(s){T(l,s)}}}function Be(v){let l,f,s,o,r,a,m,c;return l=new G({props:{id:"tool",option:"Claude Code",$$slots:{default:[Ie]},$$scope:{ctx:v}}}),s=new G({props:{id:"tool",option:"Codex",$$slots:{default:[Se]},$$scope:{ctx:v}}}),r=new G({props:{id:"tool",option:"OpenCode",$$slots:{default:[Ge]},$$scope:{ctx:v}}}),m=new G({props:{id:"tool",option:"Pi",$$slots:{default:[He]},$$scope:{ctx:v}}}),{c(){g(l.$$.fragment),f=u(),g(s.$$.fragment),o=u(),g(r.$$.fragment),a=u(),g(m.$$.fragment)},l(t){M(l.$$.fragment,t),f=d(t),M(s.$$.fragment,t),o=d(t),M(r.$$.fragment,t),a=d(t),M(m.$$.fragment,t)},m(t,p){k(l,t,p),i(t,f,p),k(s,t,p),i(t,o,p),k(r,t,p),i(t,a,p),k(m,t,p),c=!0},p(t,p){const _={};p&2&&(_.$$scope={dirty:p,ctx:t}),l.$set(_);const x={};p&2&&(x.$$scope={dirty:p,ctx:t}),s.$set(x);const j={};p&2&&(j.$$scope={dirty:p,ctx:t}),r.$set(j);const h={};p&2&&(h.$$scope={dirty:p,ctx:t}),m.$set(h)},i(t){c||(w(l.$$.fragment,t),w(s.$$.fragment,t),w(r.$$.fragment,t),w(m.$$.fragment,t),c=!0)},o(t){C(l.$$.fragment,t),C(s.$$.fragment,t),C(r.$$.fragment,t),C(m.$$.fragment,t),c=!1},d(t){t&&(n(f),n(o),n(a)),T(l,t),T(s,t),T(r,t),T(m,t)}}}function Ze(v){let l,f,s,o="Or check installed plugins inside a Claude Code session with:",r,a,m;return l=new H({props:{code:"bHMlMjAuY2xhdWRlJTJGc2tpbGxzJTJGaGYtY2xpJTJGU0tJTEwubWQ=",highlighted:'<span class="hljs-built_in">ls</span> .claude/skills/hf-cli/SKILL.md',wrap:!1}}),a=new H({props:{code:"JTJGcGx1Z2lu",highlighted:"/plugin",wrap:!1}}),{c(){g(l.$$.fragment),f=u(),s=b("p"),s.textContent=o,r=u(),g(a.$$.fragment)},l(c){M(l.$$.fragment,c),f=d(c),s=U(c,"P",{"data-svelte-h":!0}),J(s)!=="svelte-7xhear"&&(s.textContent=o),r=d(c),M(a.$$.fragment,c)},m(c,t){k(l,c,t),i(c,f,t),i(c,s,t),i(c,r,t),k(a,c,t),m=!0},p:B,i(c){m||(w(l.$$.fragment,c),w(a.$$.fragment,c),m=!0)},o(c){C(l.$$.fragment,c),C(a.$$.fragment,c),m=!1},d(c){c&&(n(f),n(s),n(r)),T(l,c),T(a,c)}}}function Pe(v){let l,f;return l=new H({props:{code:"bHMlMjAuYWdlbnRzJTJGc2tpbGxzJTJGaGYtY2xpJTJGU0tJTEwubWQ=",highlighted:'<span class="hljs-built_in">ls</span> .agents/skills/hf-cli/SKILL.md',wrap:!1}}),{c(){g(l.$$.fragment)},l(s){M(l.$$.fragment,s)},m(s,o){k(l,s,o),f=!0},p:B,i(s){f||(w(l.$$.fragment,s),f=!0)},o(s){C(l.$$.fragment,s),f=!1},d(s){T(l,s)}}}function Ne(v){let l,f;return l=new H({props:{code:"bHMlMjAub3BlbmNvZGUlMkZza2lsbHMlMkZoZi1jbGklMkZTS0lMTC5tZA==",highlighted:'<span class="hljs-built_in">ls</span> .opencode/skills/hf-cli/SKILL.md',wrap:!1}}),{c(){g(l.$$.fragment)},l(s){M(l.$$.fragment,s)},m(s,o){k(l,s,o),f=!0},p:B,i(s){f||(w(l.$$.fragment,s),f=!0)},o(s){C(l.$$.fragment,s),f=!1},d(s){T(l,s)}}}function Fe(v){let l,f,s,o="Pi loads either path, plus the user-level directories under <code>~/.pi/agent/skills/</code> and <code>~/.agents/skills/</code>.",r;return l=new H({props:{code:"bHMlMjAucGklMkZza2lsbHMlMkZoZi1jbGklMkZTS0lMTC5tZCUwQWxzJTIwLmFnZW50cyUyRnNraWxscyUyRmhmLWNsaSUyRlNLSUxMLm1k",highlighted:`<span class="hljs-built_in">ls</span> .pi/skills/hf-cli/SKILL.md
<span class="hljs-built_in">ls</span> .agents/skills/hf-cli/SKILL.md`,wrap:!1}}),{c(){g(l.$$.fragment),f=u(),s=b("p"),s.innerHTML=o},l(a){M(l.$$.fragment,a),f=d(a),s=U(a,"P",{"data-svelte-h":!0}),J(s)!=="svelte-14biyjg"&&(s.innerHTML=o)},m(a,m){k(l,a,m),i(a,f,m),i(a,s,m),r=!0},p:B,i(a){r||(w(l.$$.fragment,a),r=!0)},o(a){C(l.$$.fragment,a),r=!1},d(a){a&&(n(f),n(s)),T(l,a)}}}function We(v){let l,f,s,o,r,a,m,c;return l=new G({props:{id:"tool",option:"Claude Code",$$slots:{default:[Ze]},$$scope:{ctx:v}}}),s=new G({props:{id:"tool",option:"Codex",$$slots:{default:[Pe]},$$scope:{ctx:v}}}),r=new G({props:{id:"tool",option:"OpenCode",$$slots:{default:[Ne]},$$scope:{ctx:v}}}),m=new G({props:{id:"tool",option:"Pi",$$slots:{default:[Fe]},$$scope:{ctx:v}}}),{c(){g(l.$$.fragment),f=u(),g(s.$$.fragment),o=u(),g(r.$$.fragment),a=u(),g(m.$$.fragment)},l(t){M(l.$$.fragment,t),f=d(t),M(s.$$.fragment,t),o=d(t),M(r.$$.fragment,t),a=d(t),M(m.$$.fragment,t)},m(t,p){k(l,t,p),i(t,f,p),k(s,t,p),i(t,o,p),k(r,t,p),i(t,a,p),k(m,t,p),c=!0},p(t,p){const _={};p&2&&(_.$$scope={dirty:p,ctx:t}),l.$set(_);const x={};p&2&&(x.$$scope={dirty:p,ctx:t}),s.$set(x);const j={};p&2&&(j.$$scope={dirty:p,ctx:t}),r.$set(j);const h={};p&2&&(h.$$scope={dirty:p,ctx:t}),m.$set(h)},i(t){c||(w(l.$$.fragment,t),w(s.$$.fragment,t),w(r.$$.fragment,t),w(m.$$.fragment,t),c=!0)},o(t){C(l.$$.fragment,t),C(s.$$.fragment,t),C(r.$$.fragment,t),C(m.$$.fragment,t),c=!1},d(t){t&&(n(f),n(o),n(a)),T(l,t),T(s,t),T(r,t),T(m,t)}}}function Ee(v){let l,f,s,o,r,a,m,c,t,p="The Agent Skills Specification keeps the SKILL.md format consistent across agents. What differs is where each agent looks for skills on disk and how you install them.",_,x,j,h,y="Each agent discovers skills from known directories. You create a skill by placing a <code>SKILL.md</code> file in a named subdirectory at one of these paths:",I,L,S,W,ct,E,zt='We’ll use the <a href="https://github.com/huggingface/skills" rel="nofollow">hf-cli</a> skill as a real-world example. It gives agents access to the Hugging Face Hub CLI for downloading, uploading, and managing repositories.',ht,A,Kt="The Hugging Face CLI also provides a cross-agent skill installer. Use it when you want the same skill in more than one agent or want a shared install flow:",gt,Q,Mt,P,kt,R,wt,V,Ot="Once installed, skills activate in two ways: implicitly (the agent matches your request to a skill’s description) or explicitly (you invoke a skill by name).",Ct,N,Tt,z,bt,K,Ut,O,Yt="<strong>Problem</strong>: Skill is installed but the agent doesn’t use it.",vt,Y,qt="Check that the <code>description</code> field includes keywords matching your request, use terms that align with the skill’s stated purpose, or invoke the skill explicitly by name. A description like “Hugging Face Hub CLI for downloading, uploading, and managing repositories” activates on requests mentioning “upload,” “download,” or “Hugging Face,” but a vague request like “push my files somewhere” may not match.",yt,q,Lt,X,Xt="The fastest way to debug a new skill is to test activation pressure directly:",Jt,D,Dt="<li>Ask for the skill with an obvious prompt that should match its description.</li> <li>Ask again with a vaguer prompt that a real user might write.</li> <li>If only the first prompt works, tighten the <code>description</code> until both prompts reliably activate the skill.</li>",xt,tt,te="For Codex, this is exactly where <code>$skill-creator</code> helps. Feed it the skill, the prompt that failed to activate, and the behavior you wanted so it can sharpen the description without rewriting the whole skill.",_t,et,jt,lt,ee="<strong>Problem</strong>: Agent can’t locate the skill.",It,st,le="Verify the skill is in the correct directory for your agent:",St,F,Gt,nt,Ht,it,se="<strong>Problem</strong>: Multiple skills have overlapping functionality.",Bt,at,ne="Make each skill’s <code>description</code> field specific enough that the agent can distinguish between them. If two skills cover related tasks (e.g., validation and publishing), give each a clear scope in its description.",Zt,ot,Pt,pt,ie="Organize skills by domain — keep related skills together so agents can discover related functionality easily:",Nt,$t,Ft,ft,ae="Keep each skill focused on one task. If a SKILL.md exceeds 500 lines, split it into multiple skills or move reference material to supporting files in the same directory.",Wt,rt,Et,mt,oe="Next, we’ll build a skill from scratch.",At,ut,Qt,dt,Rt;return r=new we({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),m=new Z({props:{title:"Using Skills with Code Agents",local:"using-skills-with-code-agents",headingTag:"h1"}}),x=new Z({props:{title:"Where Skills Live",local:"where-skills-live",headingTag:"h2"}}),L=new Vt({props:{id:"tool",options:["Claude Code","Codex","OpenCode","Pi"],$$slots:{default:[ye]},$$scope:{ctx:v}}}),W=new Z({props:{title:"Installing a Skill",local:"installing-a-skill",headingTag:"h2"}}),Q=new H({props:{code:"JTIzJTIwUHJvamVjdC1sb2NhbCUyMGluc3RhbGwlMEFoZiUyMHNraWxscyUyMGFkZCUwQSUwQSUyMyUyMEFnZW50LXNwZWNpZmljJTIwc3ltbGlua3MlMEFoZiUyMHNraWxscyUyMGFkZCUyMC0tY2xhdWRlJTBBaGYlMjBza2lsbHMlMjBhZGQlMjAtLWNvZGV4JTIwLS1vcGVuY29kZSUyMC0tZ2xvYmFs",highlighted:`<span class="hljs-comment"># Project-local install</span>
hf skills add
<span class="hljs-comment"># Agent-specific symlinks</span>
hf skills add --claude
hf skills add --codex --opencode --global`,wrap:!1}}),P=new Vt({props:{id:"tool",options:["Claude Code","Codex","OpenCode","Pi"],$$slots:{default:[je]},$$scope:{ctx:v}}}),R=new Z({props:{title:"Invoking Skills",local:"invoking-skills",headingTag:"h2"}}),N=new Vt({props:{id:"tool",options:["Claude Code","Codex","OpenCode","Pi"],$$slots:{default:[Be]},$$scope:{ctx:v}}}),z=new Z({props:{title:"Troubleshooting Skills",local:"troubleshooting-skills",headingTag:"h2"}}),K=new Z({props:{title:"Skill Doesn’t Activate",local:"skill-doesnt-activate",headingTag:"h3"}}),q=new Z({props:{title:"Did Your Skill Fire?",local:"did-your-skill-fire",headingTag:"h2"}}),et=new Z({props:{title:"Skill Not Found",local:"skill-not-found",headingTag:"h3"}}),F=new Vt({props:{id:"tool",options:["Claude Code","Codex","OpenCode","Pi"],$$slots:{default:[We]},$$scope:{ctx:v}}}),nt=new Z({props:{title:"Skill Conflicts",local:"skill-conflicts",headingTag:"h3"}}),ot=new Z({props:{title:"Best Practices",local:"best-practices",headingTag:"h2"}}),$t=new H({props:{code:"LmNsYXVkZSUyRnNraWxscyUyRiUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMGhmLWNsaSUyRiUwQSVFMiU5NCU4MiUyMCUyMCUyMCVFMiU5NCU5NCVFMiU5NCU4MCVFMiU5NCU4MCUyMFNLSUxMLm1kJTBBJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwZGF0YXNldC12YWxpZGF0aW9uJTJGJTBBJUUyJTk0JTgyJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwU0tJTEwubWQlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBtb2RlbC10cmFpbmluZyUyRiUwQSVFMiU5NCU4MiUyMCUyMCUyMCVFMiU5NCU5NCVFMiU5NCU4MCVFMiU5NCU4MCUyMFNLSUxMLm1kJTBBJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwbW9kZWwtZXZhbHVhdGlvbiUyRiUwQSUyMCUyMCUyMCUyMCVFMiU5NCU5NCVFMiU5NCU4MCVFMiU5NCU4MCUyMFNLSUxMLm1k",highlighted:`.claude/skills/
├── hf-cli/
│ └── SKILL.md
├── dataset-validation/
│ └── SKILL.md
├── model-training/
│ └── SKILL.md
└── model-evaluation/
└── SKILL.md`,wrap:!1}}),rt=new Z({props:{title:"Next Steps",local:"next-steps",headingTag:"h2"}}),ut=new Ce({props:{source:"https://github.com/huggingface/context-course/blob/main/units/en/unit1/using-skills.mdx"}}),{c(){l=b("meta"),f=u(),s=b("p"),o=u(),g(r.$$.fragment),a=u(),g(m.$$.fragment),c=u(),t=b("p"),t.textContent=p,_=u(),g(x.$$.fragment),j=u(),h=b("p"),h.innerHTML=y,I=u(),g(L.$$.fragment),S=u(),g(W.$$.fragment),ct=u(),E=b("p"),E.innerHTML=zt,ht=u(),A=b("p"),A.textContent=Kt,gt=u(),g(Q.$$.fragment),Mt=u(),g(P.$$.fragment),kt=u(),g(R.$$.fragment),wt=u(),V=b("p"),V.textContent=Ot,Ct=u(),g(N.$$.fragment),Tt=u(),g(z.$$.fragment),bt=u(),g(K.$$.fragment),Ut=u(),O=b("p"),O.innerHTML=Yt,vt=u(),Y=b("p"),Y.innerHTML=qt,yt=u(),g(q.$$.fragment),Lt=u(),X=b("p"),X.textContent=Xt,Jt=u(),D=b("ol"),D.innerHTML=Dt,xt=u(),tt=b("p"),tt.innerHTML=te,_t=u(),g(et.$$.fragment),jt=u(),lt=b("p"),lt.innerHTML=ee,It=u(),st=b("p"),st.textContent=le,St=u(),g(F.$$.fragment),Gt=u(),g(nt.$$.fragment),Ht=u(),it=b("p"),it.innerHTML=se,Bt=u(),at=b("p"),at.innerHTML=ne,Zt=u(),g(ot.$$.fragment),Pt=u(),pt=b("p"),pt.textContent=ie,Nt=u(),g($t.$$.fragment),Ft=u(),ft=b("p"),ft.textContent=ae,Wt=u(),g(rt.$$.fragment),Et=u(),mt=b("p"),mt.textContent=oe,At=u(),g(ut.$$.fragment),Qt=u(),dt=b("p"),this.h()},l(e){const $=Me("svelte-u9bgzb",document.head);l=U($,"META",{name:!0,content:!0}),$.forEach(n),f=d(e),s=U(e,"P",{}),me(s).forEach(n),o=d(e),M(r.$$.fragment,e),a=d(e),M(m.$$.fragment,e),c=d(e),t=U(e,"P",{"data-svelte-h":!0}),J(t)!=="svelte-1ekh7ju"&&(t.textContent=p),_=d(e),M(x.$$.fragment,e),j=d(e),h=U(e,"P",{"data-svelte-h":!0}),J(h)!=="svelte-16taqtn"&&(h.innerHTML=y),I=d(e),M(L.$$.fragment,e),S=d(e),M(W.$$.fragment,e),ct=d(e),E=U(e,"P",{"data-svelte-h":!0}),J(E)!=="svelte-fsowt0"&&(E.innerHTML=zt),ht=d(e),A=U(e,"P",{"data-svelte-h":!0}),J(A)!=="svelte-fv00f3"&&(A.textContent=Kt),gt=d(e),M(Q.$$.fragment,e),Mt=d(e),M(P.$$.fragment,e),kt=d(e),M(R.$$.fragment,e),wt=d(e),V=U(e,"P",{"data-svelte-h":!0}),J(V)!=="svelte-1alhwdw"&&(V.textContent=Ot),Ct=d(e),M(N.$$.fragment,e),Tt=d(e),M(z.$$.fragment,e),bt=d(e),M(K.$$.fragment,e),Ut=d(e),O=U(e,"P",{"data-svelte-h":!0}),J(O)!=="svelte-pyclsq"&&(O.innerHTML=Yt),vt=d(e),Y=U(e,"P",{"data-svelte-h":!0}),J(Y)!=="svelte-1wkei5n"&&(Y.innerHTML=qt),yt=d(e),M(q.$$.fragment,e),Lt=d(e),X=U(e,"P",{"data-svelte-h":!0}),J(X)!=="svelte-1g6j854"&&(X.textContent=Xt),Jt=d(e),D=U(e,"OL",{"data-svelte-h":!0}),J(D)!=="svelte-1e0v61b"&&(D.innerHTML=Dt),xt=d(e),tt=U(e,"P",{"data-svelte-h":!0}),J(tt)!=="svelte-3l9mm3"&&(tt.innerHTML=te),_t=d(e),M(et.$$.fragment,e),jt=d(e),lt=U(e,"P",{"data-svelte-h":!0}),J(lt)!=="svelte-1vo0vc0"&&(lt.innerHTML=ee),It=d(e),st=U(e,"P",{"data-svelte-h":!0}),J(st)!=="svelte-1jfghtn"&&(st.textContent=le),St=d(e),M(F.$$.fragment,e),Gt=d(e),M(nt.$$.fragment,e),Ht=d(e),it=U(e,"P",{"data-svelte-h":!0}),J(it)!=="svelte-ad51m6"&&(it.innerHTML=se),Bt=d(e),at=U(e,"P",{"data-svelte-h":!0}),J(at)!=="svelte-ija8sj"&&(at.innerHTML=ne),Zt=d(e),M(ot.$$.fragment,e),Pt=d(e),pt=U(e,"P",{"data-svelte-h":!0}),J(pt)!=="svelte-xtsj5k"&&(pt.textContent=ie),Nt=d(e),M($t.$$.fragment,e),Ft=d(e),ft=U(e,"P",{"data-svelte-h":!0}),J(ft)!=="svelte-1dbx64s"&&(ft.textContent=ae),Wt=d(e),M(rt.$$.fragment,e),Et=d(e),mt=U(e,"P",{"data-svelte-h":!0}),J(mt)!=="svelte-z1irxy"&&(mt.textContent=oe),At=d(e),M(ut.$$.fragment,e),Qt=d(e),dt=U(e,"P",{}),me(dt).forEach(n),this.h()},h(){ue(l,"name","hf:doc:metadata"),ue(l,"content",Ae)},m(e,$){ke(document.head,l),i(e,f,$),i(e,s,$),i(e,o,$),k(r,e,$),i(e,a,$),k(m,e,$),i(e,c,$),i(e,t,$),i(e,_,$),k(x,e,$),i(e,j,$),i(e,h,$),i(e,I,$),k(L,e,$),i(e,S,$),k(W,e,$),i(e,ct,$),i(e,E,$),i(e,ht,$),i(e,A,$),i(e,gt,$),k(Q,e,$),i(e,Mt,$),k(P,e,$),i(e,kt,$),k(R,e,$),i(e,wt,$),i(e,V,$),i(e,Ct,$),k(N,e,$),i(e,Tt,$),k(z,e,$),i(e,bt,$),k(K,e,$),i(e,Ut,$),i(e,O,$),i(e,vt,$),i(e,Y,$),i(e,yt,$),k(q,e,$),i(e,Lt,$),i(e,X,$),i(e,Jt,$),i(e,D,$),i(e,xt,$),i(e,tt,$),i(e,_t,$),k(et,e,$),i(e,jt,$),i(e,lt,$),i(e,It,$),i(e,st,$),i(e,St,$),k(F,e,$),i(e,Gt,$),k(nt,e,$),i(e,Ht,$),i(e,it,$),i(e,Bt,$),i(e,at,$),i(e,Zt,$),k(ot,e,$),i(e,Pt,$),i(e,pt,$),i(e,Nt,$),k($t,e,$),i(e,Ft,$),i(e,ft,$),i(e,Wt,$),k(rt,e,$),i(e,Et,$),i(e,mt,$),i(e,At,$),k(ut,e,$),i(e,Qt,$),i(e,dt,$),Rt=!0},p(e,[$]){const pe={};$&2&&(pe.$$scope={dirty:$,ctx:e}),L.$set(pe);const $e={};$&2&&($e.$$scope={dirty:$,ctx:e}),P.$set($e);const fe={};$&2&&(fe.$$scope={dirty:$,ctx:e}),N.$set(fe);const re={};$&2&&(re.$$scope={dirty:$,ctx:e}),F.$set(re)},i(e){Rt||(w(r.$$.fragment,e),w(m.$$.fragment,e),w(x.$$.fragment,e),w(L.$$.fragment,e),w(W.$$.fragment,e),w(Q.$$.fragment,e),w(P.$$.fragment,e),w(R.$$.fragment,e),w(N.$$.fragment,e),w(z.$$.fragment,e),w(K.$$.fragment,e),w(q.$$.fragment,e),w(et.$$.fragment,e),w(F.$$.fragment,e),w(nt.$$.fragment,e),w(ot.$$.fragment,e),w($t.$$.fragment,e),w(rt.$$.fragment,e),w(ut.$$.fragment,e),Rt=!0)},o(e){C(r.$$.fragment,e),C(m.$$.fragment,e),C(x.$$.fragment,e),C(L.$$.fragment,e),C(W.$$.fragment,e),C(Q.$$.fragment,e),C(P.$$.fragment,e),C(R.$$.fragment,e),C(N.$$.fragment,e),C(z.$$.fragment,e),C(K.$$.fragment,e),C(q.$$.fragment,e),C(et.$$.fragment,e),C(F.$$.fragment,e),C(nt.$$.fragment,e),C(ot.$$.fragment,e),C($t.$$.fragment,e),C(rt.$$.fragment,e),C(ut.$$.fragment,e),Rt=!1},d(e){e&&(n(f),n(s),n(o),n(a),n(c),n(t),n(_),n(j),n(h),n(I),n(S),n(ct),n(E),n(ht),n(A),n(gt),n(Mt),n(kt),n(wt),n(V),n(Ct),n(Tt),n(bt),n(Ut),n(O),n(vt),n(Y),n(yt),n(Lt),n(X),n(Jt),n(D),n(xt),n(tt),n(_t),n(jt),n(lt),n(It),n(st),n(St),n(Gt),n(Ht),n(it),n(Bt),n(at),n(Zt),n(Pt),n(pt),n(Nt),n(Ft),n(ft),n(Wt),n(Et),n(mt),n(At),n(Qt),n(dt)),n(l),T(r,e),T(m,e),T(x,e),T(L,e),T(W,e),T(Q,e),T(P,e),T(R,e),T(N,e),T(z,e),T(K,e),T(q,e),T(et,e),T(F,e),T(nt,e),T(ot,e),T($t,e),T(rt,e),T(ut,e)}}}const Ae='{"title":"Using Skills with Code Agents","local":"using-skills-with-code-agents","sections":[{"title":"Where Skills Live","local":"where-skills-live","sections":[],"depth":2},{"title":"Installing a Skill","local":"installing-a-skill","sections":[],"depth":2},{"title":"Invoking Skills","local":"invoking-skills","sections":[],"depth":2},{"title":"Troubleshooting Skills","local":"troubleshooting-skills","sections":[{"title":"Skill Doesn’t Activate","local":"skill-doesnt-activate","sections":[],"depth":3}],"depth":2},{"title":"Did Your Skill Fire?","local":"did-your-skill-fire","sections":[{"title":"Skill Not Found","local":"skill-not-found","sections":[],"depth":3},{"title":"Skill Conflicts","local":"skill-conflicts","sections":[],"depth":3}],"depth":2},{"title":"Best Practices","local":"best-practices","sections":[],"depth":2},{"title":"Next Steps","local":"next-steps","sections":[],"depth":2}],"depth":1}';function Qe(v){return ce(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Ye extends he{constructor(l){super(),ge(this,l,Qe,Ee,de,{})}}export{Ye as component};

Xet Storage Details

Size:
32 kB
·
Xet hash:
8e89b680db85a5864b219fb94cbf2cda959b9fe269dc8b05e6a0a8dba152c1ef

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.