Buckets:

download
raw
50.7 kB
import{s as Qs,a as Ns,n as Xs,o as Ys}from"../chunks/scheduler.4048030c.js";import{S as Fs,i as $s,e as i,s as a,c,h as Vs,a as M,d as t,b as n,f as Zt,j as T,g as p,k as h,l as j,m as s,n as r,t as o,o as y,p as J}from"../chunks/index.5d0b9360.js";import{C as Hs,H as u,E as Ls}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.99c2e6c8.js";import{C as U}from"../chunks/CodeBlock.ff2a3276.js";function xs(gt){let I,le,Ol,ee,Z,te,E,se,G,vt="The Agent Skills Specification describes skills as a <code>SKILL.md</code> file with YAML frontmatter and Markdown instructions, optionally accompanied by <code>scripts/</code>, <code>references/</code>, and <code>assets/</code> directories. This lesson walks through each piece and how to write them well.",ae,w,Qt,ne,S,ie,R,Nt="Skills follow a consistent directory structure defined by the Agent Skills Specification:",Me,W,pe,k,Xt="<strong>Rules:</strong>",ce,g,Yt="<li>Directory name must be lowercase with hyphens (skill-name, not SkillName)</li> <li>Consecutive hyphens are NOT allowed (my—skill is invalid)</li> <li>SKILL.md is required and must be in the root</li> <li>Optional directories: scripts/, references/, assets/</li> <li>All relative file paths are resolved from the skill root</li>",Te,v,re,Q,Ft="Every SKILL.md starts with YAML frontmatter that describes the skill. Here’s the complete specification:",oe,N,ye,X,Je,Y,$t="<strong><code>name</code></strong> (string)",de,F,Vt="<li>Human-readable identifier for the skill</li> <li>Constraints: lowercase letters, digits, and hyphens; 1-64 characters; no consecutive hyphens</li> <li>Must match the directory name exactly</li> <li>Examples: <code>&quot;text-classification&quot;</code>, <code>&quot;model-evaluation&quot;</code>, <code>&quot;dataset-publishing&quot;</code></li>",me,$,Ht="<strong><code>description</code></strong> (string)",Ue,V,Lt="<li>Concise description of what the skill does</li> <li>Constraints: max 1024 characters</li> <li>Should include: what task the skill accomplishes, when to use it</li> <li>Format: Start with verb (e.g., “Publish datasets…”, “Train models…“)</li>",ue,H,je,L,xt="<strong><code>license</code></strong> (string)",we,x,At="<li>Software license for the skill</li> <li>Common values: “MIT”, “Apache-2.0”, “CC-BY-4.0”, “GPL-3.0”</li> <li>Indicates how others can use and modify the skill</li>",he,A,zt="<strong><code>compatibility</code></strong> (string)",Ie,z,qt=`<li>Environment requirements and tested configurations</li> <li>Constraints: max 500 characters</li> <li>Examples:
<ul><li>“Tested with Python 3.8+ and huggingface_hub 0.16+”</li> <li>“Requires PyTorch 2.0+, transformers 4.30+, and CUDA 11.8”</li> <li>“Works with Claude Code, Codex, and open source agents”</li></ul></li>`,be,q,_t="<strong><code>metadata</code></strong> (object)",Be,_,Dt="<li>Arbitrary key-value pairs for custom data</li> <li>Common keys: <code>author</code>, <code>version</code>, <code>created</code>, <code>updated</code>, <code>maintainer</code>, <code>contact</code></li>",fe,D,Pt="For example:",Ce,P,Ze,O,Ot="<strong><code>allowed-tools</code></strong> (string, experimental)",Ee,K,Kt="<li>Glob patterns specifying which tools the skill uses</li> <li>Used by agents to restrict skill execution to specific tools</li> <li>Format: <code>ToolName(pattern:*)</code> separated by spaces</li> <li>Examples: <code>&quot;Bash(git:*) Bash(jq:*) Read&quot;</code> or <code>&quot;Bash(hf:*) Python(huggingface_hub:*)&quot;</code></li> <li>Currently experimental; not all agents support this field</li>",Ge,ll,Se,el,ls="After frontmatter, the skill should contain detailed instructions organized in Markdown:",Re,tl,We,sl,ke,al,es="Keep your SKILL.md focused: aim for 400–800 lines maximum, move detailed reference material to the <code>references/</code> directory, move code examples to <code>scripts/</code>, and use internal links to reference other files like <code>[validation script](scripts/validate.py)</code>.",ge,nl,ts="Write for clarity by using <code>## Section</code> and <code>### Subsection</code> formatting, including copy-paste-ready code examples in fenced code blocks, numbering steps for procedures, and using checklists for prerequisites. Reference external resources with links to documentation, API guides, and example code.",ve,il,Qe,Ml,ss="When referencing helper scripts and assets, use relative paths from the skill root:",Ne,pl,as="<strong>In SKILL.md:</strong>",Xe,cl,Ye,Tl,Fe,rl,ns="Scripts are stored in the <code>scripts/</code> directory and can be in any programming language:",$e,ol,is="<strong>scripts/validate_dataset.py</strong>",Ve,yl,He,b,Ms="<p>Scripts do not require an excessive amount of parameters. In most cases, the agent will regenerate the script with the appropriate parameters. Starting off with the core variables is usually enough to focus the agent on the core functionality.</p>",Le,Jl,xe,dl,ps="The <code>references/</code> directory contains documentation referenced in SKILL.md:",Ae,ml,cs="<strong>references/api-reference.md</strong>",ze,Ul,qe,ul,Ts="<strong>references/examples.md</strong>",_e,jl,De,wl,Pe,hl,rs="The <code>assets/</code> directory contains templates and configuration files:",Oe,Il,os="<strong>assets/dataset-card-template.md</strong>",Ke,bl,lt,d,ql,ys="Here's a small but complete skill following the specification",Et,_l,Js="<strong>skill-name/SKILL.md</strong>",Gt,Bl,St,Dl,ds="<strong>skill-name/scripts/generate_card.py</strong>",Rt,fl,Wt,Pl,ms="<strong>skill-name/references/best-practices.md</strong>",kt,Cl,et,Zl,Us="## Validation with skills-ref",tt,El,us='The Agent Skills Specification includes a validation tool called <code>skills-ref</code> (available at <a href="https://agentskills.io" rel="nofollow">agentskills.io</a>):',st,Gl,at,Sl,js="## File Size Guidelines",nt,Rl,ws="Keep skills efficient:",it,Wl,hs="<thead><tr><th>Component</th> <th>Recommendation</th> <th>Rationale</th></tr></thead> <tbody><tr><td>SKILL.md</td> <td>400-800 lines</td> <td>Lightweight discovery and loading</td></tr> <tr><td>scripts/</td> <td>Individual scripts &lt; 500 lines</td> <td>Easy to understand and modify</td></tr> <tr><td>Total skill</td> <td>&lt; 2 MB</td> <td>Quick download and indexing</td></tr></tbody>",Mt,kl,Is="Move large reference materials to external repositories if needed. This keeps the total skill itself small and lightweight, allowing the agent to perform quick downloading and indexing, only pulling heavy reference materials from external sources when needed.",pt,gl,bs="## Writing Tips",ct,vl,Bs="### Instructions",Tt,B,fs="<p>Write instructions for someone who <em>doesn’t</em> know the task. Assume the agent (and users reading it) need clear, step-by-step guidance.</p>",rt,Ql,Cs="<strong>Good</strong>: “First, authenticate by running <code>hf auth login</code>. This stores your token locally for subsequent commands.”",ot,Nl,Zs="<strong>Not good</strong>: “Authenticate with HF.”",yt,Xl,Es="### Code Examples",Jt,f,Gs="<p>Always provide copy-paste ready code. Test it yourself before including.</p>",dt,Yl,Ss="<strong>Good</strong>:",mt,Fl,Ut,$l,Rs="<strong>Not good</strong>: “Install huggingface_hub and log in”",ut,Vl,jt,C,Ws="<p>Make sure descriptions are realistic and specific. Vague descriptions won’t help agents or users discover your skill.</p>",wt,Hl,ks="<strong>Good</strong>: “Publish datasets to Hugging Face Hub. Use when uploading datasets, creating dataset cards, or managing dataset versions.”",ht,Ll,gs="<strong>Not good</strong>: “A dataset skill”",It,xl,bt,Al,vs="Next, we’ll look at how different agents load skills, then build one from scratch.",Bt,zl,ft,Kl,Ct;return Z=new Hs({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),E=new u({props:{title:"The SKILL.md Format",local:"the-skillmd-format",headingTag:"h1"}}),S=new u({props:{title:"Directory Structure",local:"directory-structure",headingTag:"h2"}}),W=new U({props:{code:"c2tpbGwtbmFtZSUyRiUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMFNLSUxMLm1kJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwUmVxdWlyZWQlM0ElMjBtZXRhZGF0YSUyMCUyQiUyMGluc3RydWN0aW9ucyUwQSVFMiU5NCU5QyVFMiU5NCU4MCVFMiU5NCU4MCUyMHNjcmlwdHMlMkYlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBPcHRpb25hbCUzQSUyMGV4ZWN1dGFibGUlMjBjb2RlJTBBJUUyJTk0JTgyJTIwJTIwJTIwJUUyJTk0JTlDJUUyJTk0JTgwJUUyJTk0JTgwJTIwdmFsaWRhdGUucHklMEElRTIlOTQlODIlMjAlMjAlMjAlRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBkZXBsb3kuc2glMEElRTIlOTQlODIlMjAlMjAlMjAlRTIlOTQlOTQlRTIlOTQlODAlRTIlOTQlODAlMjBSRUFETUUubWQlMEElRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjByZWZlcmVuY2VzJTJGJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIzJTIwT3B0aW9uYWwlM0ElMjBkb2N1bWVudGF0aW9uJTIwbGlua3MlMEElRTIlOTQlODIlMjAlMjAlMjAlRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjBhcGktcmVmZXJlbmNlLm1kJTBBJUUyJTk0JTgyJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwZXhhbXBsZXMubWQlMEElRTIlOTQlOTQlRTIlOTQlODAlRTIlOTQlODAlMjBhc3NldHMlMkYlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjMlMjBPcHRpb25hbCUzQSUyMHRlbXBsYXRlcyUyQyUyMGRhdGElMEElMjAlMjAlMjAlMjAlRTIlOTQlOUMlRTIlOTQlODAlRTIlOTQlODAlMjB0ZW1wbGF0ZS55YW1sJTBBJTIwJTIwJTIwJTIwJUUyJTk0JTk0JUUyJTk0JTgwJUUyJTk0JTgwJTIwY29uZmlnLWV4YW1wbGUuanNvbg==",highlighted:`skill-<span class="hljs-built_in">name</span>/
├── SKILL.md <span class="hljs-comment"># Required: metadata + instructions</span>
├── scripts/ <span class="hljs-comment"># Optional: executable code</span>
│ ├── validate.py
│ ├── deploy.sh
│ └── README.md
├── references/ <span class="hljs-comment"># Optional: documentation links</span>
│ ├── api-<span class="hljs-keyword">reference</span>.md
│ └── examples.md
└── assets/ <span class="hljs-comment"># Optional: templates, data</span>
├── template.yaml
└── config-example.json`,wrap:!1}}),v=new u({props:{title:"Frontmatter Fields",local:"frontmatter-fields",headingTag:"h2"}}),N=new U({props:{code:"LS0tJTBBbmFtZSUzQSUyMCUyMmRhdGFzZXQtcHVibGlzaGluZyUyMiUwQWRlc2NyaXB0aW9uJTNBJTIwJTIyUHVibGlzaCUyMGRhdGFzZXRzJTIwdG8lMjBIdWdnaW5nJTIwRmFjZSUyMEh1Yi4lMjBVc2UlMjB3aGVuJTIwdXBsb2FkaW5nJTIwZGF0YXNldHMlMkMlMjBjcmVhdGluZyUyMGRhdGFzZXQlMjBjYXJkcyUyQyUyMG9yJTIwbWFuYWdpbmclMjBkYXRhc2V0JTIwdmVyc2lvbnMuJTIyJTBBbGljZW5zZSUzQSUyMCUyMkFwYWNoZS0yLjAlMjIlMEFjb21wYXRpYmlsaXR5JTNBJTIwJTIyVGVzdGVkJTIwd2l0aCUyMFB5dGhvbiUyMDMuOCUyQiUyMGFuZCUyMGh1Z2dpbmdmYWNlX2h1YiUyMDAuMTYlMkIlMjIlMEFtZXRhZGF0YSUzQSUwQSUyMCUyMGF1dGhvciUzQSUyMCUyMm1sLXRlYW0lMjIlMEElMjAlMjB2ZXJzaW9uJTNBJTIwJTIyMS4wLjAlMjIlMEFhbGxvd2VkLXRvb2xzJTNBJTIwJTIyQmFzaChoZiUzQSopJTIwUHl0aG9uKGh1Z2dpbmdmYWNlX2h1YiUzQSopJTIyJTBBLS0t",highlighted:`<span class="hljs-meta">---</span>
<span class="hljs-attr">name:</span> <span class="hljs-string">&quot;dataset-publishing&quot;</span>
<span class="hljs-attr">description:</span> <span class="hljs-string">&quot;Publish datasets to Hugging Face Hub. Use when uploading datasets, creating dataset cards, or managing dataset versions.&quot;</span>
<span class="hljs-attr">license:</span> <span class="hljs-string">&quot;Apache-2.0&quot;</span>
<span class="hljs-attr">compatibility:</span> <span class="hljs-string">&quot;Tested with Python 3.8+ and huggingface_hub 0.16+&quot;</span>
<span class="hljs-attr">metadata:</span>
<span class="hljs-attr">author:</span> <span class="hljs-string">&quot;ml-team&quot;</span>
<span class="hljs-attr">version:</span> <span class="hljs-string">&quot;1.0.0&quot;</span>
<span class="hljs-attr">allowed-tools:</span> <span class="hljs-string">&quot;Bash(hf:*) Python(huggingface_hub:*)&quot;</span>
<span class="hljs-meta">---</span>`,wrap:!1}}),X=new u({props:{title:"Required Fields",local:"required-fields",headingTag:"h3"}}),H=new u({props:{title:"Optional Fields",local:"optional-fields",headingTag:"h3"}}),P=new U({props:{code:"bWV0YWRhdGElM0ElMEElMjAlMjBhdXRob3IlM0ElMjAlMjJqb2huLWRvZSUyMiUwQSUyMCUyMHZlcnNpb24lM0ElMjAlMjIxLjIuMCUyMiUwQSUyMCUyMGNyZWF0ZWQlM0ElMjAlMjIyMDI0LTAxLTE1JTIyJTBBJTIwJTIwdXBkYXRlZCUzQSUyMCUyMjIwMjYtMDQtMTMlMjIlMEElMjAlMjBtYWludGFpbmVyJTNBJTIwJTIyam9obi1kb2UlMjI=",highlighted:`<span class="hljs-attr">metadata:</span>
<span class="hljs-attr">author:</span> <span class="hljs-string">&quot;john-doe&quot;</span>
<span class="hljs-attr">version:</span> <span class="hljs-string">&quot;1.2.0&quot;</span>
<span class="hljs-attr">created:</span> <span class="hljs-string">&quot;2024-01-15&quot;</span>
<span class="hljs-attr">updated:</span> <span class="hljs-string">&quot;2026-04-13&quot;</span>
<span class="hljs-attr">maintainer:</span> <span class="hljs-string">&quot;john-doe&quot;</span>`,wrap:!1}}),ll=new u({props:{title:"Body Content",local:"body-content",headingTag:"h2"}}),tl=new U({props:{code:"JTIzJTIwRGF0YXNldCUyMFB1Ymxpc2hpbmclMjBTa2lsbCUwQSUwQSUyMyUyMyUyME92ZXJ2aWV3JTBBQnJpZWYlMjBkZXNjcmlwdGlvbiUyMG9mJTIwd2hhdCUyMHRoZSUyMHNraWxsJTIwdGVhY2hlcyUyMGFuZCUyMHR5cGljYWwlMjB1c2UlMjBjYXNlcy4lMEElMEElMjMlMjMlMjBQcmVyZXF1aXNpdGVzJTIwQ2hlY2tsaXN0JTBBLSUyMCU1QiUyMCU1RCUyMFB5dGhvbiUyMDMuOCUyMG9yJTIwaGlnaGVyJTIwaW5zdGFsbGVkJTBBLSUyMCU1QiUyMCU1RCUyMGh1Z2dpbmdmYWNlX2h1YiUyMHBhY2thZ2UlMjBpbnN0YWxsZWQlMEEtJTIwJTVCJTIwJTVEJTIwVmFsaWQlMjBIdWdnaW5nJTIwRmFjZSUyMGFjY291bnQlMEEtJTIwJTVCJTIwJTVEJTIwSEZfVE9LRU4lMjBlbnZpcm9ubWVudCUyMHZhcmlhYmxlJTIwc2V0JTBBJTBBJTIzJTIzJTIwU3RlcC1ieS1TdGVwJTIwR3VpZGUlMEElMEElMjMlMjMlMjMlMjAxLiUyMEF1dGhlbnRpY2F0aW9uJTBBLi4u",highlighted:`<span class="hljs-section"># Dataset Publishing Skill</span>
<span class="hljs-section">## Overview</span>
Brief description of what the skill teaches and typical use cases.
<span class="hljs-section">## Prerequisites Checklist</span>
<span class="hljs-bullet">-</span> [ ] Python 3.8 or higher installed
<span class="hljs-bullet">-</span> [ ] huggingface<span class="hljs-emphasis">_hub package installed
- [ ] Valid Hugging Face account
- [ ] HF_</span>TOKEN environment variable set
<span class="hljs-section">## Step-by-Step Guide</span>
<span class="hljs-section">### 1. Authentication</span>
...`,wrap:!1}}),sl=new u({props:{title:"Content Guidelines",local:"content-guidelines",headingTag:"h3"}}),il=new u({props:{title:"File References in Skills",local:"file-references-in-skills",headingTag:"h2"}}),cl=new U({props:{code:"JTIzJTIzJTIwVmFsaWRhdGlvbiUwQSUwQVJ1biUyMHRoZSUyMHZhbGlkYXRpb24lMjBzY3JpcHQlM0ElMEElNjAlNjAlNjBiYXNoJTBBcHl0aG9uJTIwc2NyaXB0cyUyRnZhbGlkYXRlX2RhdGFzZXQucHklMjBkYXRhJTJGbXlfZGF0YXNldC5jc3YlMEElNjAlNjAlNjAlMEElMEFHZW5lcmF0ZSUyMG1vZGVsJTIwY2FyZCUzQSUwQSU2MCU2MCU2MGJhc2glMEFweXRob24lMjBzY3JpcHRzJTJGY3JlYXRlX21vZGVsX2NhcmQucHklMjAtLW5hbWUlMjAlMjJNeSUyME1vZGVsJTIyJTIwLS1tZXRyaWNzJTIwbWV0cmljcy5qc29u",highlighted:'<span class="hljs-section">## Validation</span>\n\nRun the validation script:\n<span class="hljs-code">```bash\npython scripts/validate_dataset.py data/my_dataset.csv\n```</span>\n\nGenerate model card:\n<span class="hljs-code">```bash\npython scripts/create_model_card.py --name &quot;My Model&quot; --metrics metrics.json</span>',wrap:!1}}),Tl=new u({props:{title:"Helper Scripts Structure",local:"helper-scripts-structure",headingTag:"h2"}}),yl=new U({props:{code:"aW1wb3J0JTIwcGFuZGFzJTIwYXMlMjBwZCUwQWZyb20lMjBwYXRobGliJTIwaW1wb3J0JTIwUGF0aCUwQSUwQWRlZiUyMHZhbGlkYXRlX2RhdGFzZXQoZGF0YXNldF9wYXRoKSUzQSUwQSUyMCUyMCUyMCUyMCUyMiUyMiUyMlZhbGlkYXRlJTIwZGF0YXNldCUyMG1lZXRzJTIwcmVxdWlyZW1lbnRzLiUyMiUyMiUyMiUwQSUyMCUyMCUyMCUyMGlmJTIwbm90JTIwUGF0aChkYXRhc2V0X3BhdGgpLmV4aXN0cygpJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcmFpc2UlMjBGaWxlTm90Rm91bmRFcnJvcihmJTIyRGF0YXNldCUyMG5vdCUyMGZvdW5kJTNBJTIwJTdCZGF0YXNldF9wYXRoJTdEJTIyKSUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMGRmJTIwJTNEJTIwcGQucmVhZF9jc3YoZGF0YXNldF9wYXRoKSUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMCUyMyUyMFZhbGlkYXRlJTIwcmVxdWlyZWQlMjBjb2x1bW5zJTBBJTIwJTIwJTIwJTIwcmVxdWlyZWQlMjAlM0QlMjAlN0IndGV4dCclMkMlMjAnbGFiZWwnJTdEJTBBJTIwJTIwJTIwJTIwbWlzc2luZyUyMCUzRCUyMHJlcXVpcmVkJTIwLSUyMHNldChkZi5jb2x1bW5zKSUwQSUyMCUyMCUyMCUyMGlmJTIwbWlzc2luZyUzQSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHJhaXNlJTIwVmFsdWVFcnJvcihmJTIyTWlzc2luZyUyMGNvbHVtbnMlM0ElMjAlN0JtaXNzaW5nJTdEJTIyKSUwQSUyMCUyMCUyMCUyMCUwQSUyMCUyMCUyMCUyMCUyMyUyMFZhbGlkYXRlJTIwbm8lMjBudWxscyUwQSUyMCUyMCUyMCUyMGlmJTIwZGYuaXNudWxsKCkuYW55KCkuYW55KCklM0ElMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjByYWlzZSUyMFZhbHVlRXJyb3IoJTIyRGF0YXNldCUyMGNvbnRhaW5zJTIwbnVsbCUyMHZhbHVlcyUyMiklMEElMjAlMjAlMjAlMjAlMEElMjAlMjAlMjAlMjByZXR1cm4lMjBUcnVlJTBBJTBBaWYlMjBfX25hbWVfXyUyMCUzRCUzRCUyMCUyMl9fbWFpbl9fJTIyJTNBJTBBJTIwJTIwJTIwJTIwaW1wb3J0JTIwc3lzJTBBJTIwJTIwJTIwJTIwdHJ5JTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdmFsaWRhdGVfZGF0YXNldChzeXMuYXJndiU1QjElNUQpJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoJTIyVmFsaWRhdGlvbiUyMHBhc3NlZCElMjIpJTBBJTIwJTIwJTIwJTIwZXhjZXB0JTIwRXhjZXB0aW9uJTIwYXMlMjBlJTNBJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwcHJpbnQoZiUyMlZhbGlkYXRpb24lMjBmYWlsZWQlM0ElMjAlN0JlJTdEJTIyKSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN5cy5leGl0KDEp",highlighted:`<span class="hljs-keyword">import</span> pandas <span class="hljs-keyword">as</span> pd
<span class="hljs-keyword">from</span> pathlib <span class="hljs-keyword">import</span> Path
<span class="hljs-keyword">def</span> <span class="hljs-title function_">validate_dataset</span>(<span class="hljs-params">dataset_path</span>):
<span class="hljs-string">&quot;&quot;&quot;Validate dataset meets requirements.&quot;&quot;&quot;</span>
<span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> Path(dataset_path).exists():
<span class="hljs-keyword">raise</span> FileNotFoundError(<span class="hljs-string">f&quot;Dataset not found: <span class="hljs-subst">{dataset_path}</span>&quot;</span>)
df = pd.read_csv(dataset_path)
<span class="hljs-comment"># Validate required columns</span>
required = {<span class="hljs-string">&#x27;text&#x27;</span>, <span class="hljs-string">&#x27;label&#x27;</span>}
missing = required - <span class="hljs-built_in">set</span>(df.columns)
<span class="hljs-keyword">if</span> missing:
<span class="hljs-keyword">raise</span> ValueError(<span class="hljs-string">f&quot;Missing columns: <span class="hljs-subst">{missing}</span>&quot;</span>)
<span class="hljs-comment"># Validate no nulls</span>
<span class="hljs-keyword">if</span> df.isnull().<span class="hljs-built_in">any</span>().<span class="hljs-built_in">any</span>():
<span class="hljs-keyword">raise</span> ValueError(<span class="hljs-string">&quot;Dataset contains null values&quot;</span>)
<span class="hljs-keyword">return</span> <span class="hljs-literal">True</span>
<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">&quot;__main__&quot;</span>:
<span class="hljs-keyword">import</span> sys
<span class="hljs-keyword">try</span>:
validate_dataset(sys.argv[<span class="hljs-number">1</span>])
<span class="hljs-built_in">print</span>(<span class="hljs-string">&quot;Validation passed!&quot;</span>)
<span class="hljs-keyword">except</span> Exception <span class="hljs-keyword">as</span> e:
<span class="hljs-built_in">print</span>(<span class="hljs-string">f&quot;Validation failed: <span class="hljs-subst">{e}</span>&quot;</span>)
sys.exit(<span class="hljs-number">1</span>)`,wrap:!1}}),Jl=new u({props:{title:"References Directory",local:"references-directory",headingTag:"h2"}}),Ul=new U({props:{code:"JTIzJTIwSHVnZ2luZyUyMEZhY2UlMjBIdWIlMjBBUEklMjBSZWZlcmVuY2UlMEElMEElMjMlMjMlMjBEYXRhc2V0JTIwQVBJJTBBJTBBJTIzJTIzJTIzJTIwQ3JlYXRlJTIwRGF0YXNldA==",highlighted:`<span class="hljs-section"># Hugging Face Hub API Reference</span>
<span class="hljs-section">## Dataset API</span>
<span class="hljs-section">### Create Dataset</span>`,wrap:!1}}),jl=new U({props:{code:"JTIzJTIwRXhhbXBsZSUyMERhdGFzZXRzJTBBJTBBJTIzJTIzJTIwU2ltcGxlJTIwQ1NWJTIwRGF0YXNldCUwQS0lMjBOYW1lJTNBJTIwbW5pc3Qtc3Vic2V0JTBBLSUyMEZvcm1hdCUzQSUyMENTViUwQS0lMjBDb2x1bW5zJTNBJTIwaW1hZ2VfZGF0YSUyQyUyMGxhYmVsJTBBLSUyMFNpemUlM0ElMjB+MTBNQg==",highlighted:`<span class="hljs-section"># Example Datasets</span>
<span class="hljs-section">## Simple CSV Dataset</span>
<span class="hljs-bullet">-</span> Name: mnist-subset
<span class="hljs-bullet">-</span> Format: CSV
<span class="hljs-bullet">-</span> Columns: image<span class="hljs-emphasis">_data, label
- Size: ~10MB</span>`,wrap:!1}}),wl=new u({props:{title:"Assets Directory",local:"assets-directory",headingTag:"h2"}}),bl=new U({props:{code:"LS0tJTBBbGljZW5zZSUzQSUyMGNjLWJ5LTQuMCUwQS0tLSUwQSUwQSUyMyUyMCU3QkRBVEFTRVRfTkFNRSU3RCUwQSUwQSUyMyUyMyUyMERhdGFzZXQlMjBTdW1tYXJ5JTBBJTdCQnJpZWYlMjBkZXNjcmlwdGlvbiU3RCUwQSUwQSUyMyUyMyUyMERhdGFzZXQlMjBTdHJ1Y3R1cmUlMEElMjMlMjMlMjMlMjBEYXRhJTIwU3BsaXRzJTBBJTdCTGlzdCUyMHNwbGl0cyUzQSUyMHRyYWluJTJDJTIwdmFsaWRhdGlvbiUyQyUyMHRlc3QlN0QlMEElNjAlNjAlNjAlMEElMEEqKmFzc2V0cyUyRmNvbmZpZy1leGFtcGxlLnlhbWwqKiUwQSU2MCU2MCU2MCU2MHlhbWwlMEFkYXRhc2V0JTNBJTBBJTIwJTIwbmFtZSUzQSUyMG15LWRhdGFzZXQlMEElMjAlMjB2ZXJzaW9uJTNBJTIwMS4wJTBBJTIwJTIwZm9ybWF0JTNBJTIwY3N2",highlighted:`---
<span class="hljs-section">license: cc-by-4.0
---</span>
<span class="hljs-section"># {DATASET<span class="hljs-emphasis">_NAME}
## Dataset Summary
{Brief description}
## Dataset Structure
### Data Splits
{List splits: train, validation, test}
\`\`\`
<span class="hljs-strong">**assets/config-example.yaml**</span>
\`\`\`\`yaml
dataset:
name: my-dataset
version: 1.0
format: csv</span></span>`,wrap:!1}}),Bl=new U({props:{code:"LS0tJTBBbmFtZSUzQSUyMCUyMm1vZGVsLWNhcmQtZ2VuZXJhdG9yJTIyJTBBZGVzY3JpcHRpb24lM0ElMjAlMjJHZW5lcmF0ZSUyMG1vZGVsJTIwY2FyZHMlMjBmb3IlMjBIdWdnaW5nJTIwRmFjZSUyMEh1Yi4lMjBVc2UlMjB3aGVuJTIwZG9jdW1lbnRpbmclMjBtb2RlbHMlMkMlMjBhZGRpbmclMjBtZXRhZGF0YSUyQyUyMG9yJTIwY3JlYXRpbmclMjBSRUFETUUlMjBmaWxlcy4lMjIlMEFsaWNlbnNlJTNBJTIwJTIyTUlUJTIyJTBBY29tcGF0aWJpbGl0eSUzQSUyMCUyMlB5dGhvbiUyMDMuOCUyQiUyQyUyMHJlcXVpcmVzJTIwamluamEyJTIyJTBBbWV0YWRhdGElM0ElMEElMjAlMjBhdXRob3IlM0ElMjAlMjJjb250ZXh0LWNvdXJzZSUyMiUwQSUyMCUyMHZlcnNpb24lM0ElMjAlMjIxLjAuMCUyMiUwQSUyMCUyMGNyZWF0ZWQlM0ElMjAlMjIyMDI2LTA0LTEzJTIyJTBBLS0tJTBBJTBBJTIzJTIwTW9kZWwlMjBDYXJkJTIwR2VuZXJhdG9yJTIwU2tpbGwlMEElMEElMjMlMjMlMjBPdmVydmlldyUwQVRoaXMlMjBza2lsbCUyMGhlbHBzJTIwY3JlYXRlJTIwcHJvZmVzc2lvbmFsJTIwbW9kZWwlMjBjYXJkcyUyMGFuZCUyMFJFQURNRSUyMGZpbGVzJTIwZm9yJTIwbW9kZWxzJTIwcHVibGlzaGVkJTIwdG8lMjBIdWdnaW5nJTIwRmFjZSUyMEh1Yi4lMjBNb2RlbCUyMGNhcmRzJTIwZG9jdW1lbnQlM0ElMEEtJTIwTW9kZWwlMjBhcmNoaXRlY3R1cmUlMjBhbmQlMjB0cmFpbmluZyUyMGRhdGElMEEtJTIwSW50ZW5kZWQlMjB1c2UlMjBhbmQlMjBsaW1pdGF0aW9ucyUwQS0lMjBQZXJmb3JtYW5jZSUyMG1ldHJpY3MlMEEtJTIwRXRoaWNhbCUyMGNvbnNpZGVyYXRpb25zJTBBLSUyMExpY2Vuc2UlMjBpbmZvcm1hdGlvbiUwQSUwQSUyMyUyMyUyMFByZXJlcXVpc2l0ZXMlMjBDaGVja2xpc3QlMEEtJTIwJTVCJTIwJTVEJTIwUHl0aG9uJTIwMy44JTJCJTIwaW5zdGFsbGVkJTBBLSUyMCU1QiUyMCU1RCUyMGppbmphMiUyMHBhY2thZ2UlMjBpbnN0YWxsZWQlMEEtJTIwJTVCJTIwJTVEJTIwTW9kZWwlMjBpbmZvcm1hdGlvbiUyMGF2YWlsYWJsZSUyMChuYW1lJTJDJTIwZGVzY3JpcHRpb24lMkMlMjBtZXRyaWNzKSUwQSUwQSUyMyUyMyUyMFN0ZXAtYnktU3RlcCUyMEd1aWRlJTBBJTBBJTIzJTIzJTIzJTIwMS4lMjBHYXRoZXIlMjBNb2RlbCUyMEluZm9ybWF0aW9uJTBBQ29sbGVjdCUyMHRoZSUyMGZvbGxvd2luZyUyMGFib3V0JTIweW91ciUyMG1vZGVsJTNBJTBBLSUyME1vZGVsJTIwbmFtZSUyMGFuZCUyMGRlc2NyaXB0aW9uJTBBLSUyMFRyYWluaW5nJTIwZGF0YSUyMGRlc2NyaXB0aW9uJTBBLSUyMFBlcmZvcm1hbmNlJTIwbWV0cmljcyUyMChhY2N1cmFjeSUyQyUyMEYxJTJDJTIwQkxFVSUyQyUyMGV0Yy4pJTBBLSUyMEludGVuZGVkJTIwdXNlJTIwY2FzZXMlMEEtJTIwTGltaXRhdGlvbnMlMEEtJTIwTGljZW5zZSUyMChNSVQlMkMlMjBBcGFjaGUtMi4wJTJDJTIwQ0MtQlktNC4wJTJDJTIwZXRjLiklMEElMEElMjMlMjMlMjMlMjAyLiUyMEdlbmVyYXRlJTIwQ2FyZCUwQSU2MCU2MCU2MHB5dGhvbiUwQWZyb20lMjBnZW5lcmF0ZV9jYXJkJTIwaW1wb3J0JTIwY3JlYXRlX21vZGVsX2NhcmQlMEElMEFtZXRyaWNzJTIwJTNEJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIyYWNjdXJhY3klMjIlM0ElMjAwLjkyJTJDJTBBJTIwJTIwJTIwJTIwJTIyZjFfc2NvcmUlMjIlM0ElMjAwLjg5JTJDJTBBJTIwJTIwJTIwJTIwJTIycHJlY2lzaW9uJTIyJTNBJTIwMC45MSUwQSU3RCUwQSUwQWNhcmQlMjAlM0QlMjBjcmVhdGVfbW9kZWxfY2FyZCglMEElMjAlMjAlMjAlMjBtb2RlbF9uYW1lJTNEJTIyTXklMjBDbGFzc2lmaWVyJTIyJTJDJTBBJTIwJTIwJTIwJTIwZGVzY3JpcHRpb24lM0QlMjJBJTIwdHJhbnNmb3JtZXItYmFzZWQlMjB0ZXh0JTIwY2xhc3NpZmllciUyMiUyQyUwQSUyMCUyMCUyMCUyMG1ldHJpY3MlM0RtZXRyaWNzJTBBKSUwQSUwQXdpdGglMjBvcGVuKCUyMlJFQURNRS5tZCUyMiUyQyUyMCUyMnclMjIpJTIwYXMlMjBmJTNBJTBBJTIwJTIwJTIwJTIwZi53cml0ZShjYXJkKSUwQSU2MCU2MCU2MCUwQSUwQVNlZSUyMCU1QnRoZSUyMGdlbmVyYXRpb24lMjBzY3JpcHQlNUQoc2NyaXB0cyUyRmdlbmVyYXRlX2NhcmQucHkpJTIwZm9yJTIwbW9yZSUyMG9wdGlvbnMuJTBBJTBBJTIzJTIzJTIzJTIwMy4lMjBDdXN0b21pemUlMEFPcGVuJTIwUkVBRE1FLm1kJTIwYW5kJTIwYWRkJTNBJTBBLSUyMERldGFpbGVkJTIwZGVzY3JpcHRpb24lMEEtJTIwVHJhaW5pbmclMjBwcm9jZWR1cmUlMEEtJTIwRXhhbXBsZSUyMHVzYWdlJTBBLSUyMENpdGF0aW9uJTIwaW5mb3JtYXRpb24lMEElMEElMjMlMjMlMjBIZWxwZXIlMjBTY3JpcHRzJTBBLSUyMCU1Qk1vZGVsJTIwY2FyZCUyMGdlbmVyYXRvciU1RChzY3JpcHRzJTJGZ2VuZXJhdGVfY2FyZC5weSklMEEtJTIwJTVCVmFsaWRhdGlvbiUyMHRvb2wlNUQoc2NyaXB0cyUyRnZhbGlkYXRlX2NhcmQucHkpJTBBJTBBJTIzJTIzJTIwUmVmZXJlbmNlcyUwQS0lMjAlNUJNb2RlbCUyMENhcmRzJTIwUGFwZXIlNUQoaHR0cHMlM0ElMkYlMkZhcnhpdi5vcmclMkZhYnMlMkYxODEwLjAzOTkzKSUwQS0lMjAlNUJIRiUyME1vZGVsJTIwQ2FyZCUyMFRlbXBsYXRlJTVEKC4uJTJGcmVmZXJlbmNlcyUyRmhmLXRlbXBsYXRlKSUwQS0lMjAlNUJCZXN0JTIwUHJhY3RpY2VzJTVEKC4uJTJGcmVmZXJlbmNlcyUyRmJlc3QtcHJhY3RpY2VzKSUwQSUwQSUyMyUyMyUyMFRyb3VibGVzaG9vdGluZyUwQSUwQSUyMyUyMyUyMyUyMElzc3VlJTNBJTIwRnJvbnRtYXR0ZXIlMjBub3QlMjByZW5kZXJpbmclMEEqKlNvbHV0aW9uKiolM0ElMjBFbnN1cmUlMjBkYXNoZXMlMjBhcmUlMjBvbiUyMHRoZWlyJTIwb3duJTIwbGluZXMlMjBpbiUyMHRoZSUyMFlBTUwlMjBzZWN0aW9uJTNBJTBBJTYwJTYwJTYweWFtbCUwQS0tLSUwQWxpY2Vuc2UlM0ElMjBtaXQlMEEtLS0lMEElNjAlNjAlNjAlMEElMEElMjMlMjMlMjMlMjBJc3N1ZSUzQSUyMENoYXJhY3RlcnMlMjBub3QlMjBkaXNwbGF5aW5nJTBBKipTb2x1dGlvbioqJTNBJTIwU2F2ZSUyMGZpbGUlMjBhcyUyMFVURi04JTIwZW5jb2RpbmclM0ElMEElNjAlNjAlNjBiYXNoJTBBZmlsZSUyMFJFQURNRS5tZCUwQSU2MCU2MCU2MA==",highlighted:`---
name: &quot;model-card-generator&quot;
description: &quot;Generate model cards for Hugging Face Hub. Use when documenting models, adding metadata, or creating README files.&quot;
license: &quot;MIT&quot;
compatibility: &quot;Python 3.8+, requires jinja2&quot;
metadata:
author: &quot;context-course&quot;
version: &quot;1.0.0&quot;
<span class="hljs-section"> created: &quot;2026-04-13&quot;
---</span>
<span class="hljs-section"># Model Card Generator Skill</span>
<span class="hljs-section">## Overview</span>
This skill helps create professional model cards and README files for models published to Hugging Face Hub. Model cards document:
<span class="hljs-bullet">-</span> Model architecture and training data
<span class="hljs-bullet">-</span> Intended use and limitations
<span class="hljs-bullet">-</span> Performance metrics
<span class="hljs-bullet">-</span> Ethical considerations
<span class="hljs-bullet">-</span> License information
<span class="hljs-section">## Prerequisites Checklist</span>
<span class="hljs-bullet">-</span> [ ] Python 3.8+ installed
<span class="hljs-bullet">-</span> [ ] jinja2 package installed
<span class="hljs-bullet">-</span> [ ] Model information available (name, description, metrics)
<span class="hljs-section">## Step-by-Step Guide</span>
<span class="hljs-section">### 1. Gather Model Information</span>
Collect the following about your model:
<span class="hljs-bullet">-</span> Model name and description
<span class="hljs-bullet">-</span> Training data description
<span class="hljs-bullet">-</span> Performance metrics (accuracy, F1, BLEU, etc.)
<span class="hljs-bullet">-</span> Intended use cases
<span class="hljs-bullet">-</span> Limitations
<span class="hljs-bullet">-</span> License (MIT, Apache-2.0, CC-BY-4.0, etc.)
<span class="hljs-section">### 2. Generate Card</span>
<span class="hljs-code">\`\`\`python
from generate_card import create_model_card
metrics = {
&quot;accuracy&quot;: 0.92,
&quot;f1_score&quot;: 0.89,
&quot;precision&quot;: 0.91
}
card = create_model_card(
model_name=&quot;My Classifier&quot;,
description=&quot;A transformer-based text classifier&quot;,
metrics=metrics
)
with open(&quot;README.md&quot;, &quot;w&quot;) as f:
f.write(card)
\`\`\`</span>
See [<span class="hljs-string">the generation script</span>](<span class="hljs-link">scripts/generate_card.py</span>) for more options.
<span class="hljs-section">### 3. Customize</span>
Open README.md and add:
<span class="hljs-bullet">-</span> Detailed description
<span class="hljs-bullet">-</span> Training procedure
<span class="hljs-bullet">-</span> Example usage
<span class="hljs-bullet">-</span> Citation information
<span class="hljs-section">## Helper Scripts</span>
<span class="hljs-bullet">-</span> [<span class="hljs-string">Model card generator</span>](<span class="hljs-link">scripts/generate_card.py</span>)
<span class="hljs-bullet">-</span> [<span class="hljs-string">Validation tool</span>](<span class="hljs-link">scripts/validate_card.py</span>)
<span class="hljs-section">## References</span>
<span class="hljs-bullet">-</span> [<span class="hljs-string">Model Cards Paper</span>](<span class="hljs-link">https://arxiv.org/abs/1810.03993</span>)
<span class="hljs-bullet">-</span> [<span class="hljs-string">HF Model Card Template</span>](<span class="hljs-link">../references/hf-template</span>)
<span class="hljs-bullet">-</span> [<span class="hljs-string">Best Practices</span>](<span class="hljs-link">../references/best-practices</span>)
<span class="hljs-section">## Troubleshooting</span>
<span class="hljs-section">### Issue: Frontmatter not rendering</span>
<span class="hljs-strong">**Solution**</span>: Ensure dashes are on their own lines in the YAML section:
<span class="hljs-section">\`\`\`yaml
---</span>
<span class="hljs-section">license: mit
---</span>
<span class="hljs-code">\`\`\`
### Issue: Characters not displaying
**Solution**: Save file as UTF-8 encoding:
\`\`\`</span>bash
file README.md
<span class="hljs-code">\`\`\`</span>`,wrap:!1}}),fl=new U({props:{code:"ZnJvbSUyMGRhdGV0aW1lJTIwaW1wb3J0JTIwZGF0ZXRpbWUlMEFmcm9tJTIwamluamEyJTIwaW1wb3J0JTIwVGVtcGxhdGUlMEElMEFURU1QTEFURSUyMCUzRCUyMCUyMiUyMiUyMi0tLSUwQWxpY2Vuc2UlM0ElMjAlN0IlN0IlMjBsaWNlbnNlJTIwJTdEJTdEJTBBLS0tJTBBJTBBJTIzJTIwJTdCJTdCJTIwbmFtZSUyMCU3RCU3RCUwQSUwQSU3QiU3QiUyMGRlc2NyaXB0aW9uJTIwJTdEJTdEJTBBJTBBJTIzJTIzJTIwUGVyZm9ybWFuY2UlMEElMEElN0MlMjBNZXRyaWMlMjAlN0MlMjBWYWx1ZSUyMCU3QyUwQSU3Qy0tLS0tLS0tJTdDLS0tLS0tLSU3QyUwQSU3QiUyNSUyMGZvciUyMG1ldHJpYyUyQyUyMHZhbHVlJTIwaW4lMjBtZXRyaWNzLml0ZW1zKCklMjAlMjUlN0QlMEElN0MlMjAlN0IlN0IlMjBtZXRyaWMlMjAlN0QlN0QlMjAlN0MlMjAlN0IlN0IlMjAlMjIlMjUuNGYlMjIlMjAlN0MlMjBmb3JtYXQodmFsdWUpJTIwJTdEJTdEJTIwJTdDJTBBJTdCJTI1JTIwZW5kZm9yJTIwJTI1JTdEJTBBJTBBJTIzJTIzJTIwTW9kZWwlMjBEZXRhaWxzJTBBLSUyMENyZWF0ZWQlM0ElMjAlN0IlN0IlMjBjcmVhdGVkX2RhdGUlMjAlN0QlN0QlMEEtJTIwRnJhbWV3b3JrJTNBJTIwUHlUb3JjaCUwQSUwQSUyMyUyMyUyMFVzZXMlMEFUaGlzJTIwbW9kZWwlMjBpcyUyMHN1aXRhYmxlJTIwZm9yJTIwJTdCJTdCJTIwdXNlX2Nhc2VzJTIwJTdEJTdELiUwQSUwQSUyMyUyMyUyMExpbWl0YXRpb25zJTBBLSUyMFRyYWluZWQlMjBvbiUyMHNwZWNpZmljJTIwZG9tYWluJTIwZGF0YSUwQS0lMjBNYXklMjBub3QlMjBnZW5lcmFsaXplJTIwdG8lMjBvdGhlciUyMGRvbWFpbnMlMEElMjIlMjIlMjIlMEElMEFkZWYlMjBjcmVhdGVfbW9kZWxfY2FyZChtb2RlbF9uYW1lJTJDJTIwZGVzY3JpcHRpb24lMkMlMjBtZXRyaWNzJTJDJTIwbGljZW5zZSUzRCUyMm1pdCUyMiUyQyUyMHVzZV9jYXNlcyUzRCUyMmNsYXNzaWZpY2F0aW9uJTIyKSUzQSUwQSUyMCUyMCUyMCUyMCUyMiUyMiUyMkdlbmVyYXRlJTIwYSUyMG1vZGVsJTIwY2FyZC4lMjIlMjIlMjIlMEElMjAlMjAlMjAlMjB0ZW1wbGF0ZSUyMCUzRCUyMFRlbXBsYXRlKFRFTVBMQVRFKSUwQSUyMCUyMCUyMCUyMHJldHVybiUyMHRlbXBsYXRlLnJlbmRlciglMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBuYW1lJTNEbW9kZWxfbmFtZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGRlc2NyaXB0aW9uJTNEZGVzY3JpcHRpb24lMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBtZXRyaWNzJTNEbWV0cmljcyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGxpY2Vuc2UlM0RsaWNlbnNlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwdXNlX2Nhc2VzJTNEdXNlX2Nhc2VzJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwY3JlYXRlZF9kYXRlJTNEZGF0ZXRpbWUubm93KCkuaXNvZm9ybWF0KCklMEElMjAlMjAlMjAlMjAp",highlighted:`<span class="hljs-keyword">from</span> datetime <span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">from</span> jinja2 <span class="hljs-keyword">import</span> Template
TEMPLATE = <span class="hljs-string">&quot;&quot;&quot;---
license: {{ license }}
---
# {{ name }}
{{ description }}
## Performance
| Metric | Value |
|--------|-------|
{% for metric, value in metrics.items() %}
| {{ metric }} | {{ &quot;%.4f&quot; | format(value) }} |
{% endfor %}
## Model Details
- Created: {{ created_date }}
- Framework: PyTorch
## Uses
This model is suitable for {{ use_cases }}.
## Limitations
- Trained on specific domain data
- May not generalize to other domains
&quot;&quot;&quot;</span>
<span class="hljs-keyword">def</span> <span class="hljs-title function_">create_model_card</span>(<span class="hljs-params">model_name, description, metrics, license=<span class="hljs-string">&quot;mit&quot;</span>, use_cases=<span class="hljs-string">&quot;classification&quot;</span></span>):
<span class="hljs-string">&quot;&quot;&quot;Generate a model card.&quot;&quot;&quot;</span>
template = Template(TEMPLATE)
<span class="hljs-keyword">return</span> template.render(
name=model_name,
description=description,
metrics=metrics,
license=license,
use_cases=use_cases,
created_date=datetime.now().isoformat()
)`,wrap:!1}}),Cl=new U({props:{code:"JTIzJTIwTW9kZWwlMjBDYXJkJTIwQmVzdCUyMFByYWN0aWNlcyUwQSUwQSUyMyUyMyUyMFdyaXRpbmclMjBDbGVhciUyMERlc2NyaXB0aW9ucyUwQS0lMjBEZXNjcmliZSUyMHdoYXQlMjB0aGUlMjBtb2RlbCUyMGRvZXMlMjBpbiUyMG9uZSUyMHNlbnRlbmNlJTBBLSUyMEV4cGxhaW4lMjB0aGUlMjB0cmFpbmluZyUyMGRhdGElMjBzb3VyY2UlMEEtJTIwTWVudGlvbiUyMHRoZSUyMG1vZGVsJTIwYXJjaGl0ZWN0dXJlJTBBLSUyMExpc3QlMjBwZXJmb3JtYW5jZSUyMG1ldHJpY3MlMEElMEElMjMlMjMlMjBQZXJmb3JtYW5jZSUyMERvY3VtZW50YXRpb24lMEEtJTIwQWx3YXlzJTIwaW5jbHVkZSUyMGFjdHVhbCUyMG1ldHJpY3MlMkMlMjBub3QlMjBqdXN0JTIwY2xhaW1zJTBBLSUyMFVzZSUyMHN0YW5kYXJkJTIwYmVuY2htYXJrcyUyMHdoZXJlJTIwcG9zc2libGUlMEEtJTIwRG9jdW1lbnQlMjBldmFsdWF0aW9uJTIwbWV0aG9kb2xvZ3klMEEtJTIwU2hvdyUyMGxpbWl0YXRpb25zJTIwaG9uZXN0bHklMEElMEElMjMlMjMlMjBMaWNlbnNlJTIwU2VsZWN0aW9uJTBBLSUyMENob29zZSUyMGElMjBwZXJtaXNzaXZlJTIwbGljZW5zZSUyMChNSVQlMkMlMjBBcGFjaGUtMi4wKSUwQS0lMjBDQy1CWS00LjAlMjBmb3IlMjBub24tc29mdHdhcmUlMjBjb250ZW50JTBBLSUyMENDMCUyMGZvciUyMGRhdGFzZXRzJTBBLSUyMEJlJTIwY2xlYXIlMjBhYm91dCUyMGRlcGVuZGVuY2llcyclMjBsaWNlbnNlcw==",highlighted:`<span class="hljs-section"># Model Card Best Practices</span>
<span class="hljs-section">## Writing Clear Descriptions</span>
<span class="hljs-bullet">-</span> Describe what the model does in one sentence
<span class="hljs-bullet">-</span> Explain the training data source
<span class="hljs-bullet">-</span> Mention the model architecture
<span class="hljs-bullet">-</span> List performance metrics
<span class="hljs-section">## Performance Documentation</span>
<span class="hljs-bullet">-</span> Always include actual metrics, not just claims
<span class="hljs-bullet">-</span> Use standard benchmarks where possible
<span class="hljs-bullet">-</span> Document evaluation methodology
<span class="hljs-bullet">-</span> Show limitations honestly
<span class="hljs-section">## License Selection</span>
<span class="hljs-bullet">-</span> Choose a permissive license (MIT, Apache-2.0)
<span class="hljs-bullet">-</span> CC-BY-4.0 for non-software content
<span class="hljs-bullet">-</span> CC0 for datasets
<span class="hljs-bullet">-</span> Be clear about dependencies&#x27; licenses`,wrap:!1}}),Gl=new U({props:{code:"JTIzJTIwVmFsaWRhdGUlMjBhJTIwc2tpbGwlMjBkaXJlY3RvcnklMEFza2lsbHMtcmVmJTIwdmFsaWRhdGUlMjBza2lsbC1uYW1lJTJGJTBBJTBBJTIzJTIwT3V0cHV0JTNBJTBBJTIzJTIwJUUyJTlDJTkzJTIwU0tJTEwubWQlMjBmb3VuZCUwQSUyMyUyMCVFMiU5QyU5MyUyMG5hbWUlMjBmaWVsZCUyMHZhbGlkJTNBJTIwbW9kZWwtY2FyZC1nZW5lcmF0b3IlMEElMjMlMjAlRTIlOUMlOTMlMjBkZXNjcmlwdGlvbiUyMHZhbGlkJTIwKG1heCUyMDEwMjQlMjBjaGFycyklMEElMjMlMjAlRTIlOUMlOTMlMjByZXF1aXJlZCUyMGZpZWxkcyUyMHByZXNlbnQlMEElMjMlMjAlRTIlOUElQTAlMjB3YXJuaW5nJTNBJTIwc2NyaXB0JTIwcmVmZXJlbmNlcyUyMHVzZSUyMGFic29sdXRlJTIwcGF0aHMlMjAoc2hvdWxkJTIwYmUlMjByZWxhdGl2ZSk=",highlighted:`<span class="hljs-comment"># Validate a skill directory</span>
skills-ref validate skill-name/
<span class="hljs-comment"># Output:</span>
<span class="hljs-comment"># ✓ SKILL.md found</span>
<span class="hljs-comment"># ✓ name field valid: model-card-generator</span>
<span class="hljs-comment"># ✓ description valid (max 1024 chars)</span>
<span class="hljs-comment"># ✓ required fields present</span>
<span class="hljs-comment"># ⚠ warning: script references use absolute paths (should be relative)</span>`,wrap:!1}}),Fl=new U({props:{code:"cGlwJTIwaW5zdGFsbCUyMGh1Z2dpbmdmYWNlX2h1YiUwQWhmJTIwYXV0aCUyMGxvZ2lu",highlighted:`pip install huggingface_hub
hf auth login`,wrap:!1}}),Vl=new u({props:{title:"Frontmatter Metadata",local:"frontmatter-metadata",headingTag:"h3"}}),xl=new u({props:{title:"Next Steps",local:"next-steps",headingTag:"h2"}}),zl=new Ls({props:{source:"https://github.com/huggingface/context-course/blob/main/units/en/unit1/skill-format.mdx"}}),{c(){I=i("meta"),le=a(),Ol=i("p"),ee=a(),c(Z.$$.fragment),te=a(),c(E.$$.fragment),se=a(),G=i("p"),G.innerHTML=vt,ae=a(),w=i("iframe"),ne=a(),c(S.$$.fragment),ie=a(),R=i("p"),R.textContent=Nt,Me=a(),c(W.$$.fragment),pe=a(),k=i("p"),k.innerHTML=Xt,ce=a(),g=i("ul"),g.innerHTML=Yt,Te=a(),c(v.$$.fragment),re=a(),Q=i("p"),Q.textContent=Ft,oe=a(),c(N.$$.fragment),ye=a(),c(X.$$.fragment),Je=a(),Y=i("p"),Y.innerHTML=$t,de=a(),F=i("ul"),F.innerHTML=Vt,me=a(),$=i("p"),$.innerHTML=Ht,Ue=a(),V=i("ul"),V.innerHTML=Lt,ue=a(),c(H.$$.fragment),je=a(),L=i("p"),L.innerHTML=xt,we=a(),x=i("ul"),x.innerHTML=At,he=a(),A=i("p"),A.innerHTML=zt,Ie=a(),z=i("ul"),z.innerHTML=qt,be=a(),q=i("p"),q.innerHTML=_t,Be=a(),_=i("ul"),_.innerHTML=Dt,fe=a(),D=i("p"),D.textContent=Pt,Ce=a(),c(P.$$.fragment),Ze=a(),O=i("p"),O.innerHTML=Ot,Ee=a(),K=i("ul"),K.innerHTML=Kt,Ge=a(),c(ll.$$.fragment),Se=a(),el=i("p"),el.textContent=ls,Re=a(),c(tl.$$.fragment),We=a(),c(sl.$$.fragment),ke=a(),al=i("p"),al.innerHTML=es,ge=a(),nl=i("p"),nl.innerHTML=ts,ve=a(),c(il.$$.fragment),Qe=a(),Ml=i("p"),Ml.textContent=ss,Ne=a(),pl=i("p"),pl.innerHTML=as,Xe=a(),c(cl.$$.fragment),Ye=a(),c(Tl.$$.fragment),Fe=a(),rl=i("p"),rl.innerHTML=ns,$e=a(),ol=i("p"),ol.innerHTML=is,Ve=a(),c(yl.$$.fragment),He=a(),b=i("blockquote"),b.innerHTML=Ms,Le=a(),c(Jl.$$.fragment),xe=a(),dl=i("p"),dl.innerHTML=ps,Ae=a(),ml=i("p"),ml.innerHTML=cs,ze=a(),c(Ul.$$.fragment),qe=a(),ul=i("p"),ul.innerHTML=Ts,_e=a(),c(jl.$$.fragment),De=a(),c(wl.$$.fragment),Pe=a(),hl=i("p"),hl.innerHTML=rs,Oe=a(),Il=i("p"),Il.innerHTML=os,Ke=a(),c(bl.$$.fragment),lt=a(),d=i("details"),ql=i("summary"),ql.textContent=ys,Et=a(),_l=i("p"),_l.innerHTML=Js,Gt=a(),c(Bl.$$.fragment),St=a(),Dl=i("p"),Dl.innerHTML=ds,Rt=a(),c(fl.$$.fragment),Wt=a(),Pl=i("p"),Pl.innerHTML=ms,kt=a(),c(Cl.$$.fragment),et=a(),Zl=i("p"),Zl.textContent=Us,tt=a(),El=i("p"),El.innerHTML=us,st=a(),c(Gl.$$.fragment),at=a(),Sl=i("p"),Sl.textContent=js,nt=a(),Rl=i("p"),Rl.textContent=ws,it=a(),Wl=i("table"),Wl.innerHTML=hs,Mt=a(),kl=i("p"),kl.textContent=Is,pt=a(),gl=i("p"),gl.textContent=bs,ct=a(),vl=i("p"),vl.textContent=Bs,Tt=a(),B=i("blockquote"),B.innerHTML=fs,rt=a(),Ql=i("p"),Ql.innerHTML=Cs,ot=a(),Nl=i("p"),Nl.innerHTML=Zs,yt=a(),Xl=i("p"),Xl.textContent=Es,Jt=a(),f=i("blockquote"),f.innerHTML=Gs,dt=a(),Yl=i("p"),Yl.innerHTML=Ss,mt=a(),c(Fl.$$.fragment),Ut=a(),$l=i("p"),$l.innerHTML=Rs,ut=a(),c(Vl.$$.fragment),jt=a(),C=i("blockquote"),C.innerHTML=Ws,wt=a(),Hl=i("p"),Hl.innerHTML=ks,ht=a(),Ll=i("p"),Ll.innerHTML=gs,It=a(),c(xl.$$.fragment),bt=a(),Al=i("p"),Al.textContent=vs,Bt=a(),c(zl.$$.fragment),ft=a(),Kl=i("p"),this.h()},l(l){const e=Vs("svelte-u9bgzb",document.head);I=M(e,"META",{name:!0,content:!0}),e.forEach(t),le=n(l),Ol=M(l,"P",{}),Zt(Ol).forEach(t),ee=n(l),T(Z.$$.fragment,l),te=n(l),T(E.$$.fragment,l),se=n(l),G=M(l,"P",{"data-svelte-h":!0}),p(G)!=="svelte-1q0aph7"&&(G.innerHTML=vt),ae=n(l),w=M(l,"IFRAME",{src:!0,frameborder:!0,width:!0,height:!0}),Zt(w).forEach(t),ne=n(l),T(S.$$.fragment,l),ie=n(l),R=M(l,"P",{"data-svelte-h":!0}),p(R)!=="svelte-vkg911"&&(R.textContent=Nt),Me=n(l),T(W.$$.fragment,l),pe=n(l),k=M(l,"P",{"data-svelte-h":!0}),p(k)!=="svelte-1sb7zhg"&&(k.innerHTML=Xt),ce=n(l),g=M(l,"UL",{"data-svelte-h":!0}),p(g)!=="svelte-mpuxdz"&&(g.innerHTML=Yt),Te=n(l),T(v.$$.fragment,l),re=n(l),Q=M(l,"P",{"data-svelte-h":!0}),p(Q)!=="svelte-16i5b65"&&(Q.textContent=Ft),oe=n(l),T(N.$$.fragment,l),ye=n(l),T(X.$$.fragment,l),Je=n(l),Y=M(l,"P",{"data-svelte-h":!0}),p(Y)!=="svelte-16m9n09"&&(Y.innerHTML=$t),de=n(l),F=M(l,"UL",{"data-svelte-h":!0}),p(F)!=="svelte-ko8vmz"&&(F.innerHTML=Vt),me=n(l),$=M(l,"P",{"data-svelte-h":!0}),p($)!=="svelte-nvp2xu"&&($.innerHTML=Ht),Ue=n(l),V=M(l,"UL",{"data-svelte-h":!0}),p(V)!=="svelte-1peig8v"&&(V.innerHTML=Lt),ue=n(l),T(H.$$.fragment,l),je=n(l),L=M(l,"P",{"data-svelte-h":!0}),p(L)!=="svelte-8vqh33"&&(L.innerHTML=xt),we=n(l),x=M(l,"UL",{"data-svelte-h":!0}),p(x)!=="svelte-1laq7ll"&&(x.innerHTML=At),he=n(l),A=M(l,"P",{"data-svelte-h":!0}),p(A)!=="svelte-1kusrb8"&&(A.innerHTML=zt),Ie=n(l),z=M(l,"UL",{"data-svelte-h":!0}),p(z)!=="svelte-1scupfo"&&(z.innerHTML=qt),be=n(l),q=M(l,"P",{"data-svelte-h":!0}),p(q)!=="svelte-ak4l25"&&(q.innerHTML=_t),Be=n(l),_=M(l,"UL",{"data-svelte-h":!0}),p(_)!=="svelte-1msfm15"&&(_.innerHTML=Dt),fe=n(l),D=M(l,"P",{"data-svelte-h":!0}),p(D)!=="svelte-1gkqha7"&&(D.textContent=Pt),Ce=n(l),T(P.$$.fragment,l),Ze=n(l),O=M(l,"P",{"data-svelte-h":!0}),p(O)!=="svelte-1p8uk8c"&&(O.innerHTML=Ot),Ee=n(l),K=M(l,"UL",{"data-svelte-h":!0}),p(K)!=="svelte-k8saaj"&&(K.innerHTML=Kt),Ge=n(l),T(ll.$$.fragment,l),Se=n(l),el=M(l,"P",{"data-svelte-h":!0}),p(el)!=="svelte-xasfzp"&&(el.textContent=ls),Re=n(l),T(tl.$$.fragment,l),We=n(l),T(sl.$$.fragment,l),ke=n(l),al=M(l,"P",{"data-svelte-h":!0}),p(al)!=="svelte-1aitlbd"&&(al.innerHTML=es),ge=n(l),nl=M(l,"P",{"data-svelte-h":!0}),p(nl)!=="svelte-13ycbac"&&(nl.innerHTML=ts),ve=n(l),T(il.$$.fragment,l),Qe=n(l),Ml=M(l,"P",{"data-svelte-h":!0}),p(Ml)!=="svelte-p8lcmf"&&(Ml.textContent=ss),Ne=n(l),pl=M(l,"P",{"data-svelte-h":!0}),p(pl)!=="svelte-1owsgji"&&(pl.innerHTML=as),Xe=n(l),T(cl.$$.fragment,l),Ye=n(l),T(Tl.$$.fragment,l),Fe=n(l),rl=M(l,"P",{"data-svelte-h":!0}),p(rl)!=="svelte-1j0dhwy"&&(rl.innerHTML=ns),$e=n(l),ol=M(l,"P",{"data-svelte-h":!0}),p(ol)!=="svelte-exgg5w"&&(ol.innerHTML=is),Ve=n(l),T(yl.$$.fragment,l),He=n(l),b=M(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(b)!=="svelte-zigwza"&&(b.innerHTML=Ms),Le=n(l),T(Jl.$$.fragment,l),xe=n(l),dl=M(l,"P",{"data-svelte-h":!0}),p(dl)!=="svelte-1sxlv5f"&&(dl.innerHTML=ps),Ae=n(l),ml=M(l,"P",{"data-svelte-h":!0}),p(ml)!=="svelte-10qkj1t"&&(ml.innerHTML=cs),ze=n(l),T(Ul.$$.fragment,l),qe=n(l),ul=M(l,"P",{"data-svelte-h":!0}),p(ul)!=="svelte-7c993o"&&(ul.innerHTML=Ts),_e=n(l),T(jl.$$.fragment,l),De=n(l),T(wl.$$.fragment,l),Pe=n(l),hl=M(l,"P",{"data-svelte-h":!0}),p(hl)!=="svelte-1h8qbhh"&&(hl.innerHTML=rs),Oe=n(l),Il=M(l,"P",{"data-svelte-h":!0}),p(Il)!=="svelte-1bswu5q"&&(Il.innerHTML=os),Ke=n(l),T(bl.$$.fragment,l),lt=n(l),d=M(l,"DETAILS",{});var m=Zt(d);ql=M(m,"SUMMARY",{"data-svelte-h":!0}),p(ql)!=="svelte-htxy9u"&&(ql.textContent=ys),Et=n(m),_l=M(m,"P",{"data-svelte-h":!0}),p(_l)!=="svelte-38s6jh"&&(_l.innerHTML=Js),Gt=n(m),T(Bl.$$.fragment,m),St=n(m),Dl=M(m,"P",{"data-svelte-h":!0}),p(Dl)!=="svelte-11c7nmj"&&(Dl.innerHTML=ds),Rt=n(m),T(fl.$$.fragment,m),Wt=n(m),Pl=M(m,"P",{"data-svelte-h":!0}),p(Pl)!=="svelte-4e03f4"&&(Pl.innerHTML=ms),kt=n(m),T(Cl.$$.fragment,m),m.forEach(t),et=n(l),Zl=M(l,"P",{"data-svelte-h":!0}),p(Zl)!=="svelte-1vrgsir"&&(Zl.textContent=Us),tt=n(l),El=M(l,"P",{"data-svelte-h":!0}),p(El)!=="svelte-1ivegcb"&&(El.innerHTML=us),st=n(l),T(Gl.$$.fragment,l),at=n(l),Sl=M(l,"P",{"data-svelte-h":!0}),p(Sl)!=="svelte-zn8km0"&&(Sl.textContent=js),nt=n(l),Rl=M(l,"P",{"data-svelte-h":!0}),p(Rl)!=="svelte-use428"&&(Rl.textContent=ws),it=n(l),Wl=M(l,"TABLE",{"data-svelte-h":!0}),p(Wl)!=="svelte-yqsko2"&&(Wl.innerHTML=hs),Mt=n(l),kl=M(l,"P",{"data-svelte-h":!0}),p(kl)!=="svelte-jb6gw6"&&(kl.textContent=Is),pt=n(l),gl=M(l,"P",{"data-svelte-h":!0}),p(gl)!=="svelte-1nkykzo"&&(gl.textContent=bs),ct=n(l),vl=M(l,"P",{"data-svelte-h":!0}),p(vl)!=="svelte-qhw1v2"&&(vl.textContent=Bs),Tt=n(l),B=M(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(B)!=="svelte-z0iwmz"&&(B.innerHTML=fs),rt=n(l),Ql=M(l,"P",{"data-svelte-h":!0}),p(Ql)!=="svelte-3xx08s"&&(Ql.innerHTML=Cs),ot=n(l),Nl=M(l,"P",{"data-svelte-h":!0}),p(Nl)!=="svelte-ilczwr"&&(Nl.innerHTML=Zs),yt=n(l),Xl=M(l,"P",{"data-svelte-h":!0}),p(Xl)!=="svelte-1khoakp"&&(Xl.textContent=Es),Jt=n(l),f=M(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(f)!=="svelte-16pboke"&&(f.innerHTML=Gs),dt=n(l),Yl=M(l,"P",{"data-svelte-h":!0}),p(Yl)!=="svelte-twbvbs"&&(Yl.innerHTML=Ss),mt=n(l),T(Fl.$$.fragment,l),Ut=n(l),$l=M(l,"P",{"data-svelte-h":!0}),p($l)!=="svelte-1pcu1xt"&&($l.innerHTML=Rs),ut=n(l),T(Vl.$$.fragment,l),jt=n(l),C=M(l,"BLOCKQUOTE",{class:!0,"data-svelte-h":!0}),p(C)!=="svelte-tl5g1k"&&(C.innerHTML=Ws),wt=n(l),Hl=M(l,"P",{"data-svelte-h":!0}),p(Hl)!=="svelte-j0s884"&&(Hl.innerHTML=ks),ht=n(l),Ll=M(l,"P",{"data-svelte-h":!0}),p(Ll)!=="svelte-1m9e496"&&(Ll.innerHTML=gs),It=n(l),T(xl.$$.fragment,l),bt=n(l),Al=M(l,"P",{"data-svelte-h":!0}),p(Al)!=="svelte-aucz8i"&&(Al.textContent=vs),Bt=n(l),T(zl.$$.fragment,l),ft=n(l),Kl=M(l,"P",{}),Zt(Kl).forEach(t),this.h()},h(){h(I,"name","hf:doc:metadata"),h(I,"content",As),Ns(w.src,Qt="https://context-course-skill-anatomy.static.hf.space")||h(w,"src",Qt),h(w,"frameborder","0"),h(w,"width","850"),h(w,"height","450"),h(b,"class","tip"),h(B,"class","tip"),h(f,"class","tip"),h(C,"class","warning")},m(l,e){j(document.head,I),s(l,le,e),s(l,Ol,e),s(l,ee,e),r(Z,l,e),s(l,te,e),r(E,l,e),s(l,se,e),s(l,G,e),s(l,ae,e),s(l,w,e),s(l,ne,e),r(S,l,e),s(l,ie,e),s(l,R,e),s(l,Me,e),r(W,l,e),s(l,pe,e),s(l,k,e),s(l,ce,e),s(l,g,e),s(l,Te,e),r(v,l,e),s(l,re,e),s(l,Q,e),s(l,oe,e),r(N,l,e),s(l,ye,e),r(X,l,e),s(l,Je,e),s(l,Y,e),s(l,de,e),s(l,F,e),s(l,me,e),s(l,$,e),s(l,Ue,e),s(l,V,e),s(l,ue,e),r(H,l,e),s(l,je,e),s(l,L,e),s(l,we,e),s(l,x,e),s(l,he,e),s(l,A,e),s(l,Ie,e),s(l,z,e),s(l,be,e),s(l,q,e),s(l,Be,e),s(l,_,e),s(l,fe,e),s(l,D,e),s(l,Ce,e),r(P,l,e),s(l,Ze,e),s(l,O,e),s(l,Ee,e),s(l,K,e),s(l,Ge,e),r(ll,l,e),s(l,Se,e),s(l,el,e),s(l,Re,e),r(tl,l,e),s(l,We,e),r(sl,l,e),s(l,ke,e),s(l,al,e),s(l,ge,e),s(l,nl,e),s(l,ve,e),r(il,l,e),s(l,Qe,e),s(l,Ml,e),s(l,Ne,e),s(l,pl,e),s(l,Xe,e),r(cl,l,e),s(l,Ye,e),r(Tl,l,e),s(l,Fe,e),s(l,rl,e),s(l,$e,e),s(l,ol,e),s(l,Ve,e),r(yl,l,e),s(l,He,e),s(l,b,e),s(l,Le,e),r(Jl,l,e),s(l,xe,e),s(l,dl,e),s(l,Ae,e),s(l,ml,e),s(l,ze,e),r(Ul,l,e),s(l,qe,e),s(l,ul,e),s(l,_e,e),r(jl,l,e),s(l,De,e),r(wl,l,e),s(l,Pe,e),s(l,hl,e),s(l,Oe,e),s(l,Il,e),s(l,Ke,e),r(bl,l,e),s(l,lt,e),s(l,d,e),j(d,ql),j(d,Et),j(d,_l),j(d,Gt),r(Bl,d,null),j(d,St),j(d,Dl),j(d,Rt),r(fl,d,null),j(d,Wt),j(d,Pl),j(d,kt),r(Cl,d,null),s(l,et,e),s(l,Zl,e),s(l,tt,e),s(l,El,e),s(l,st,e),r(Gl,l,e),s(l,at,e),s(l,Sl,e),s(l,nt,e),s(l,Rl,e),s(l,it,e),s(l,Wl,e),s(l,Mt,e),s(l,kl,e),s(l,pt,e),s(l,gl,e),s(l,ct,e),s(l,vl,e),s(l,Tt,e),s(l,B,e),s(l,rt,e),s(l,Ql,e),s(l,ot,e),s(l,Nl,e),s(l,yt,e),s(l,Xl,e),s(l,Jt,e),s(l,f,e),s(l,dt,e),s(l,Yl,e),s(l,mt,e),r(Fl,l,e),s(l,Ut,e),s(l,$l,e),s(l,ut,e),r(Vl,l,e),s(l,jt,e),s(l,C,e),s(l,wt,e),s(l,Hl,e),s(l,ht,e),s(l,Ll,e),s(l,It,e),r(xl,l,e),s(l,bt,e),s(l,Al,e),s(l,Bt,e),r(zl,l,e),s(l,ft,e),s(l,Kl,e),Ct=!0},p:Xs,i(l){Ct||(o(Z.$$.fragment,l),o(E.$$.fragment,l),o(S.$$.fragment,l),o(W.$$.fragment,l),o(v.$$.fragment,l),o(N.$$.fragment,l),o(X.$$.fragment,l),o(H.$$.fragment,l),o(P.$$.fragment,l),o(ll.$$.fragment,l),o(tl.$$.fragment,l),o(sl.$$.fragment,l),o(il.$$.fragment,l),o(cl.$$.fragment,l),o(Tl.$$.fragment,l),o(yl.$$.fragment,l),o(Jl.$$.fragment,l),o(Ul.$$.fragment,l),o(jl.$$.fragment,l),o(wl.$$.fragment,l),o(bl.$$.fragment,l),o(Bl.$$.fragment,l),o(fl.$$.fragment,l),o(Cl.$$.fragment,l),o(Gl.$$.fragment,l),o(Fl.$$.fragment,l),o(Vl.$$.fragment,l),o(xl.$$.fragment,l),o(zl.$$.fragment,l),Ct=!0)},o(l){y(Z.$$.fragment,l),y(E.$$.fragment,l),y(S.$$.fragment,l),y(W.$$.fragment,l),y(v.$$.fragment,l),y(N.$$.fragment,l),y(X.$$.fragment,l),y(H.$$.fragment,l),y(P.$$.fragment,l),y(ll.$$.fragment,l),y(tl.$$.fragment,l),y(sl.$$.fragment,l),y(il.$$.fragment,l),y(cl.$$.fragment,l),y(Tl.$$.fragment,l),y(yl.$$.fragment,l),y(Jl.$$.fragment,l),y(Ul.$$.fragment,l),y(jl.$$.fragment,l),y(wl.$$.fragment,l),y(bl.$$.fragment,l),y(Bl.$$.fragment,l),y(fl.$$.fragment,l),y(Cl.$$.fragment,l),y(Gl.$$.fragment,l),y(Fl.$$.fragment,l),y(Vl.$$.fragment,l),y(xl.$$.fragment,l),y(zl.$$.fragment,l),Ct=!1},d(l){l&&(t(le),t(Ol),t(ee),t(te),t(se),t(G),t(ae),t(w),t(ne),t(ie),t(R),t(Me),t(pe),t(k),t(ce),t(g),t(Te),t(re),t(Q),t(oe),t(ye),t(Je),t(Y),t(de),t(F),t(me),t($),t(Ue),t(V),t(ue),t(je),t(L),t(we),t(x),t(he),t(A),t(Ie),t(z),t(be),t(q),t(Be),t(_),t(fe),t(D),t(Ce),t(Ze),t(O),t(Ee),t(K),t(Ge),t(Se),t(el),t(Re),t(We),t(ke),t(al),t(ge),t(nl),t(ve),t(Qe),t(Ml),t(Ne),t(pl),t(Xe),t(Ye),t(Fe),t(rl),t($e),t(ol),t(Ve),t(He),t(b),t(Le),t(xe),t(dl),t(Ae),t(ml),t(ze),t(qe),t(ul),t(_e),t(De),t(Pe),t(hl),t(Oe),t(Il),t(Ke),t(lt),t(d),t(et),t(Zl),t(tt),t(El),t(st),t(at),t(Sl),t(nt),t(Rl),t(it),t(Wl),t(Mt),t(kl),t(pt),t(gl),t(ct),t(vl),t(Tt),t(B),t(rt),t(Ql),t(ot),t(Nl),t(yt),t(Xl),t(Jt),t(f),t(dt),t(Yl),t(mt),t(Ut),t($l),t(ut),t(jt),t(C),t(wt),t(Hl),t(ht),t(Ll),t(It),t(bt),t(Al),t(Bt),t(ft),t(Kl)),t(I),J(Z,l),J(E,l),J(S,l),J(W,l),J(v,l),J(N,l),J(X,l),J(H,l),J(P,l),J(ll,l),J(tl,l),J(sl,l),J(il,l),J(cl,l),J(Tl,l),J(yl,l),J(Jl,l),J(Ul,l),J(jl,l),J(wl,l),J(bl,l),J(Bl),J(fl),J(Cl),J(Gl,l),J(Fl,l),J(Vl,l),J(xl,l),J(zl,l)}}}const As='{"title":"The SKILL.md Format","local":"the-skillmd-format","sections":[{"title":"Directory Structure","local":"directory-structure","sections":[],"depth":2},{"title":"Frontmatter Fields","local":"frontmatter-fields","sections":[{"title":"Required Fields","local":"required-fields","sections":[],"depth":3},{"title":"Optional Fields","local":"optional-fields","sections":[],"depth":3}],"depth":2},{"title":"Body Content","local":"body-content","sections":[{"title":"Content Guidelines","local":"content-guidelines","sections":[],"depth":3}],"depth":2},{"title":"File References in Skills","local":"file-references-in-skills","sections":[],"depth":2},{"title":"Helper Scripts Structure","local":"helper-scripts-structure","sections":[],"depth":2},{"title":"References Directory","local":"references-directory","sections":[],"depth":2},{"title":"Assets Directory","local":"assets-directory","sections":[{"title":"Frontmatter Metadata","local":"frontmatter-metadata","sections":[],"depth":3}],"depth":2},{"title":"Next Steps","local":"next-steps","sections":[],"depth":2}],"depth":1}';function zs(gt){return Ys(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Os extends Fs{constructor(I){super(),$s(this,I,zs,xs,Qs,{})}}export{Os as component};

Xet Storage Details

Size:
50.7 kB
·
Xet hash:
e114579d148f6a4faac2cb7b1ca85dca6b3e5bc0d6a4a84569d8128d3164cc82

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