Agent Skills och SKILL.md: stegvis exponering, mätt
Fem verkliga skills med 128 374 tokens instruktioner tar 253 tokens context. Korta beskrivningarna och agent slutar hitta dem.
På den här sidan
Ta ett projekt med fem publicerade skills installerade. Här är vad de kostar.
ls .claude/skills/next-best-practices next-cache-components vercel-composition-patterns
vercel-react-best-practices vercel-react-native-skillsskill level 1 level 2 level 3 files
next-best-practices 40 966 19,374 19
next-cache-components 28 2,334 0 0
vercel-composition-patterns 59 533 10,667 13
vercel-react-best-practices 68 1,670 53,670 75
vercel-react-native-skills 58 950 37,957 41
------ ------- --------
total 253 6,453 121,668Etthundratjugoåtta tusen tokens med instruktioner, exempel och regler — mer än vad som ryms i ett 128 000-token context window — och den stående kostnaden för att ha alla fem tillgängliga är 253 tokens, två tiondelar av en procent. Inget annat i den här kursen har den formen. En tool-definition betalas vid varje request oavsett om den används eller inte, och kapitel 26 mätte en MCP server till 1 619 tokens innan den gör något alls: trettiotvå gånger den genomsnittliga nivå 1-raden i tabellen ovan.
Det här kapitlet handlar om mekanismen som skapar den kvoten, om de två sätt den går sönder på, och om frågan som mekanismen tvingar fram och nästan ingen besvarar: givet ett stycke kunskap, på vilken av fyra platser hör det hemma.
Varför det här kapitlet inte har något programmeringsspråk
Länk till avsnittet: Varför det här kapitlet inte har något programmeringsspråkKapitel 14 satte regeln för kursens andra halva — anslutningar, återförsök och avbrytning är TypeScript — och deklarerade fem undantag. Det här är ett av dem, och skälet är inte en preferens.
En skill är en Markdown-fil. Inte en fil som konfigurerar ett program, inte en fil som ett program kompilerar: ett dokument som modellen läser, på samma sätt som den läser meddelandet du skrev. Att ge det här kapitlet ett programmeringsspråk skulle betyda att man inte har förstått formatet, och det missförståndet är det enskilt vanligaste om skills. Allt nedan är Markdown och YAML, plus ett litet shell script som finns just för att visa var kod hör hemma och inte hör hemma inuti en skill.
Notan den löser, och det är kapitel 16:s aritmetik
Länk till avsnittet: Notan den löser, och det är kapitel 16:s aritmetikHär är en verklig instruktion: hur ett företag skriver sina release notes. Det är en procedur, inte en preferens — den har en ordnad uppsättning steg, en taxonomi, en röst, en mall och ett script som samlar in råmaterialet.
Lägg allt i system prompt, som de flesta team gör, och kapitel 16:s aritmetik tar över. En system prompt är ett prefix, och ett prefix betalas vid varje call. Mätt med o200k_base över mappen som skrevs för det här kapitlet:
whole thing pasted into the system prompt 1,716 x 40 = 68,640 input tokens $0.1373
as a skill, activated once on turn 12 46 x 40
+ 324 (SKILL.md body)
+ 665 (two reference files read)
= 2,829 input tokens $0.0057
as a skill, never activated at all 46 x 40 = 1,840 input tokens $0.0037Tjugofyra gånger billigare när den används, trettiosju gånger billigare när den inte används. Priserna är kapitel 16:s: $2.00 per miljon input tokens.
Nu den ärliga invändningen, eftersom ett kapitel som hoppade över den vore reklam. Prompt caching stänger i stort sett pengagapet. En system prompt är stabil och ligger först, vilket gör den till den bästa cache-kandidaten som finns; vid $0.20 per miljon för cached input kostar samma 68 640 tokens $0.0168 i stället för $0.1373. Fortfarande tre gånger så mycket som skillen, men inte längre en annan storleksordning.
Pengarna var aldrig det starkaste argumentet. Det här är det:
Caching gör ett permanent prefix billigare. Det gör det inte mindre.
Vid tur 40 har system-prompt-versionen fortfarande 1 716 tokens release-note-policy liggande i fönstret under en konversation om något helt annat, där den konkurrerar om det kapitel 24 kallade modellens attention-budget. Skill-versionen har 46. Cachea fel sak och du har köpt rabatt på en distraktion.
Skrivet som en formel, med turer, metadata, body, hela paketet och mängden buntade filer som faktiskt läses:
Hela det här kapitlet är skillnaden mellan att multiplicera den andra termen med och att multiplicera den med ett eller med noll.
Vad en skill faktiskt är
Länk till avsnittet: Vad en skill faktiskt ärEn skill är en katalog. Specifikationen är kort nog för att återges i sin helhet:
release-notes/
├── SKILL.md # required: YAML frontmatter + Markdown instructions
├── scripts/ # optional: executable code
├── references/ # optional: documentation read on demand
├── assets/ # optional: templates, schemas, examples
└── ... # anything else you likeSKILL.md måste börja med YAML-frontmatter, och exakt två fält krävs: name och description.1 Fyra till är valfria och inga andra definieras:
| Fält | Krävs | Begränsning |
|---|---|---|
name | ja | 1–64 tecken, gemener, siffror och bindestreck; inget inledande, avslutande eller dubbelt bindestreck; måste matcha katalognamnet |
description | ja | 1–1024 tecken, inte tomt; säger vad skillen gör och när den ska användas |
license | nej | ett licensnamn, eller namnet på en buntad licensfil |
compatibility | nej | upp till 500 tecken: avsedd produkt, nödvändiga paket, nätverksåtkomst |
metadata | nej | en fri map från strängnycklar till strängvärden, för dina egna verktyg |
allowed-tools | nej | mellanslagsseparerad lista över förhandsgodkända tools; markerad som experimentell |
Här är release-notes-skillen, komplett, med sin body under trettio rader:
---
name: release-notes
description: Write the release notes for a tagged version in this company's house style. Use when preparing a release, drafting a changelog entry, or when someone asks for the notes for a version number or a tag.
allowed-tools: Bash(git log:*) Bash(git tag:*) Read
---
# Release notes
## Procedure
1. Run `scripts/collect.sh <previous-tag> <new-tag>`. It prints one line per merged
pull request: number, title, author and the labels.
2. Drop every line whose labels contain `internal`, `ci` or `chore`.
3. Put each surviving line into exactly one of the four categories in
[references/categories.md](references/categories.md). A change that seems to fit two
belongs in the higher one; the order in that file is the order of precedence.
4. Rewrite each line as a sentence in the voice defined in
[references/voice.md](references/voice.md). The pull request title is a note to
the team; the release note is a note to a stranger.
5. Check the result against [references/examples.md](references/examples.md).
## The one rule that is not negotiable
Every note says what a person can now do, or what stopped happening to them. If a
sentence can only be understood by someone who has read the diff, it is not finished.Läs vad den bodyn är. Den är inte policyn — den är en innehållsförteckning med en operationsordning. Policyn bor i tre filer som den namnger och inte inkluderar. Och steg ett lämnar arbete till ett script, eftersom ett scripts kod aldrig hamnar i context window alls: bara dess output gör det.2
Tre nivåer, och vad var och en kostar
Länk till avsnittet: Tre nivåer, och vad var och en kostarLaddningsmodellen har ett namn och tre steg. Specifikationen anger dem med en token-budget kopplad till varje steg:1
- Metadata, ungefär 100 tokens:
nameochdescription, laddas vid start för varje installerad skill. - Instruktioner, rekommenderat under 5 000 tokens:
SKILL.md-bodyn, laddas när skillen aktiveras. - Resurser, efter behov: buntade filer, laddas bara när något kräver dem.
Referensdokumentationen sätter en fjärde kolumn på samma tabell — när laddad, token-kostnad, innehåll — och raden som spelar roll är den tredje: ingen förrän den nås.3 Meningen som sammanfattar hela kapitlet finns där också:
Filer konsumerar inte context förrän de nås, så Skills kan innehålla omfattande API-dokumentation, stora dataset eller utförliga exempel. Det finns ingen context-straffavgift för buntat innehåll som inte används.3
Den uppmätta tabellen i början av det här kapitlet är det påståendet kontrollerat mot fem skills som ingen skrev för den här artikeln. Två rader förtjänar att läsas mot varandra.
next-best-practices har en body på 966 tokens som länkar till nitton filer med 19 374 tokens. Be den fixa ett hydration-fel och agent läser bodyn plus hydration-error.md: 1 409 tokens av 20 340, en faktor fjorton, och de andra arton filerna öppnas aldrig.
next-cache-components har en body på 2 334 tokens och inga buntade filer alls. Den är en giltig skill och en välskriven sådan, och den har ingen nivå 3 att exponera. Det är teknikens ärliga gräns: stegvis exponering är bara en besparing om det finns något att skjuta upp. En skill vars kunskap inte går att bryta ned betalar hela sin body vid aktivering, och den enda hävstången som återstår är att inte aktivera den.
Bryt den: beskrivningen är hela gränssnittet
Länk till avsnittet: Bryt den: beskrivningen är hela gränssnittetNivå 1 är ett routing-beslut gjort utifrån en mening. Inget annat med en skill påverkar om den någonsin öppnas — inte kvaliteten på bodyn, inte exemplen, inte scripten. Så beskrivningen är inte dokumentation. Den är query-ytan, och den kan vara fel.
Specifikationen säger det i form av ett bra exempel och ett dåligt, och det dåliga är fyra ord: description: Helps with PDFs.1 Det är värt att mäta i stället för att bara acceptera.
Sex skills, var och en med en rimlig beskrivning som säger vad den gör och när den ska användas. Tjugofyra requests, fyra per skill, formulerade som en person skulle formulera dem och utan att någonsin namnge skillen. Modellen ser de sex raderna i sin system prompt och måste svara med ett namn eller med NONE. Greedy decoding, så den reproducerar. Sedan samma tjugofyra requests med samma sex skills, och beskrivningarna nedskurna till sitt nakna ämne.
rich - sql-review: Review a SQL migration for locks, missing indexes and unsafe
defaults before it runs on the production database. Use when someone adds
or changes a migration, an index, or a table column.
thin - sql-review: Helps with SQL.rich 295 tokens of level 1 for six skills 18/24 correct = 75.0 % [55.1, 88.0]
thin 81 tokens of level 1 for six skills 10/24 correct = 41.7 % [24.5, 61.2]
paired: rich only 9, thin only 1, two-sided sign test p = 0.0215
answered NONE: rich 1 of 24, thin 9 of 24Läs intervallen först, som kapitel 4 insisterade på och kapitel 29 kommer att insistera på igen: de överlappar, och tjugofyra fall kan inte rangordna två system enbart på deras aggregat. Den parade jämförelsen är det som avgör, och det är kapitel 15:s instrument: av de tio fall där de två armarna var oense gick nio till de rika beskrivningarna och ett till de tunna. Det är fastställt vid den vanliga tröskeln.
Läs nu den sista raden, som är det faktiska fyndet. Med tunna beskrivningar svarade modellen NONE på nio av tjugofyra requests. Inte fel skill: ingen skill. Här är fyra av dem, ordagrant:
"Check this migration before I run it against production." -> release-notes
"Will this CREATE INDEX lock writes?" -> NONE
"Is this ALTER TABLE safe to deploy at peak traffic?" -> NONE
"Is 'seamless and powerful' allowed in the app store listing?" -> next-best-practicesEn perfekt sql-review-skill var installerad, med body och exempel och en checklista, och den öppnades aldrig, tre gånger i rad, på de tre frågor den var skriven för. Nivå 2 och 3 är irrelevanta för en skill som nivå 1 aldrig når.
Kostnaden för att fixa det: 214 tokens, skillnaden mellan 295 och 81, utspridd över sex skills. Det är kapitel 18:s fynd som kommer från andra hållet. Där tog en ändring av enbart ett tools beskrivning datumformatering från 2 korrekta av 24 till 24 av 24. Här tar en ändring av enbart en skills beskrivning aktivering från 10 av 24 till 18. I båda fallen är den billigaste fixen i systemet en mening, och i båda fallen måste meningen namnge triggern och inte bara ämnet: inte vad saken är, utan vad användaren precis kommer att ha sagt när den gäller.
En brasklapp som det här kapitlet är skyldigt sina egna standarder. Det här är en modell med en halv miljard parametrar, och en frontier-modell routar mycket bättre än 75 %. Läs mekanismen, inte storleken: routing-signalen är en mening lång oavsett vilken modell som läser den, och ingen modell kan välja baserat på information du inte lade in i den meningen.
Bryt den igen: nödutgången som kostar 26 362 tokens
Länk till avsnittet: Bryt den igen: nödutgången som kostar 26 362 tokensDet andra felet är motsatsen till det första. Skillen hittas, nivåerna är korrekt uppdelade, och agent läser ändå alltihop.
vercel-react-best-practices är en genuint välbyggd skill. Dess body på 1 670 tokens är en prioritetstabell med åtta kategorier och en snabbreferens som namnger 70 regelfiler, en rad per fil. Reglerna ligger på disk bredvid den: 70 filer, minsta 132 tokens, median 319, största 1 052. Ställ en fråga om barrel imports och den ärliga kostnaden är bodyn plus en fil — under 2 400 tokens mot ett paket på 53 670.
Sedan säger sista raden i bodyn detta:
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`AGENTS.md är 26 362 tokens. Det är de 70 regelfilerna sammanfogade: deras summa är 25 784, och skillnaden är rubrikerna mellan dem. Så skillen erbjuder agent ett val mellan att läsa en medianregel på 319 tokens och att läsa samma innehåll, alltihop, till åttiotre gånger priset — och den erbjuder det valet i en mening utan kostnad angiven och utan villkor för när den ska tas.
Det är inte en bug och filen är inte fel; ett kompilerat dokument är genuint användbart för en människa, och för en agent som har blivit ombedd att granska en hel codebase. Det är en nivå 3-fil med en nivå 2-inbjudan, och lärdomen generaliserar bortom just den här skillen: varje väg ut ur en SKILL.md bör säga vad den kostar och när den är värd det, eftersom modellen inte har något sätt att veta att ett filnamn är åttiotre gånger dyrare än filnamnet ovanför.
Samma mapp bär på en mindre läxa om staleness. Bodyn säger "70 rules across 8 categories" och listar 70; katalogen rules/ innehåller 72 filer, varav två är scaffolding (_template.md och _sections.md); och sidecar-filen metadata.json säger "40+ rules". Tre räkningar av samma mängd i en mapp, en av dem rätt, en av dem aritmetisk, och en av dem kvar från en tidigare version. En skill är ett dokument, och dokument ruttnar precis som en kodkommentar som har driftat bort från koden bredvid den — med skillnaden att den här läses av en maskin som inte kommer att höja på ögonbrynen.
Fälten som referensimplementationen lägger till, och portabilitetsfällan
Länk till avsnittet: Fälten som referensimplementationen lägger till, och portabilitetsfällanDen öppna specifikationen definierar sex frontmatter-fält. Referensimplementationen, Claude Code, accepterar tjugo.2 Fem grupper är värda att kunna vid namn, eftersom det är där formatet slutar vara bara ett dokument:
Behörighet och invocation. allowed-tools förhandsgodkänner tools för turen som anropade skillen och tilldelningen rensas vid nästa meddelande; disallowed-tools tar bort dem. disable-model-invocation hindrar modellen från att ladda den på egen hand, vilket förvandlar skillen till ett kommando som en person kör. user-invocable: false gör motsatsen: dold för människor, bara tillgänglig för modellen, för bakgrundskunskap.
Isolering och kostnad. context: fork kör skillen i en separat sub-agent-context med eget fönster — kapitel 25:s sub-agent-gräns som en rad YAML — med agent som väljer vilken sort och background som avgör om turen väntar. model och effort ändrar vilken modell som kör medan skillen är aktiv, bara för den turen.
Argument (arguments, argument-hint) låter en person skicka värden som substitueras in i bodyn, vilket är vad som gör en skill användbar som slash command. Scoping (paths) begränsar aktivering till filer som matchar en glob. Och dynamic context injection är den som ändrar den mentala modellen: en rad på formen !`git diff HEAD` körs innan bodyn skickas, och dess output substitueras in i texten. Dokumentet är en template, och en del av det beräknas vid lästid.
Nu fällan, och den anges i samma dokumentation: utanför Claude Code — i webbprodukten, genom Skills API, i paketering — är endast de sex specificerade fälten tillåtna, och alla andra fält är ett hårt fel vid upload.2 Så en skill som fungerar perfekt i en produkt misslyckas med att installeras i en annan från samma vendor, och den misslyckas i frontmatter snarare än i något du skulle kunna testa genom att läsa prosan. Om du vill att en skill ska vara portabel är de sex fälten hela budgeten. Om du inte vill det, säg det i compatibility, som finns just för detta.
Tabellen som kapitlet finns till för
Länk till avsnittet: Tabellen som kapitlet finns till förFyra saker förväxlas ständigt med varandra, och förvirringen är inte vokabulärpedanteri: väljer du fel kostar det pengar vid varje tur, eller kostar dig en garanti du trodde att du hade.
| System prompt | Skill | Tool | MCP server | |
|---|---|---|---|---|
| Vad det är | text i varje request | en mapp vars root är en SKILL.md | ett JSON Schema plus en endpoint i din kod | en process eller tjänst som talar ett protokoll |
| Vad modellen gör | läser den, alltid | läser den, när den beslutar att beskrivningen matchar | anropar den, och väntar på ditt resultat | anropar den, genom hosten, en client per server |
| Vad det kostar | hela längden, varje tur, för alltid | ungefär 50 tokens per tur; bodyn en gång, om den används | dess schema, varje tur; exekvering när den anropas | varje schema plus serverns instructions, varje tur |
| Vad det kan garantera | inget — det är råd | inget — det är råd som modellen kan hoppa över | allt din kod upprätthåller innan den agerar | allt servern upprätthåller |
| Vem som skriver det | du | du, en kollega eller en vendor | du | någon annan, för många hosts |
| Kapitel | 15 | det här | 18 | 26 och 27 |
De två raderna i fetstil är hela distinktionen. En skill läses; ett tool anropas. En skill är prosa som hamnar i context window och konkurrerar om attention med allt annat där; modellen kan följa den, läsa fel eller ignorera den, och inget i systemet märker det. Ett tool är ett call som lämnar modellens händer helt: din kod tar emot argument, validerar dem, kontrollerar behörigheter och beslutar. Kapitel 18 uttryckte det som att modellen föreslår och din kod avgör, och den uppdelningen är exakt vad en skill inte har.
Så sex verkliga fall, avgjorda:
"Svara på användarens språk. Ange aldrig ett pris som du inte har fått."
Länk till avsnittet: "Svara på användarens språk. Ange aldrig ett pris som du inte har fått."System prompt. Den gäller vid varje tur, den är en begränsning snarare än en procedur, och den är två meningar lång. Något som alltid gäller har inget att exponera stegvis, och att betala för en upptäcktsrad vid varje tur för att slippa betala för två meningar vid varje tur är ingen besparing.
"Hur vi skriver release notes här."
Länk till avsnittet: "Hur vi skriver release notes här."Skill. Proceduriell, behövs kanske en tur av fyrtio, kan brytas ned i röst, taxonomi och exempel, och är prosa som en person kommer att redigera. Det här är formen som formatet designades för, och mätningen ovan är vad den sparar.
"Slå upp en order via dess identifierare i lagerdatabasen."
Länk till avsnittet: "Slå upp en order via dess identifierare i lagerdatabasen."Tool. Det finns en deterministisk funktion bakom den och modellen får inte improvisera queryn. Att skriva detta som en skill — ett dokument som förklarar hur man queryar lagret — ger modellen schemat och hoppas. Ett schema plus en endpoint ger den ett svar.
"Läs och skriv issues i vår tracker, från varje agent-produkt företaget använder."
Länk till avsnittet: "Läs och skriv issues i vår tracker, från varje agent-produkt företaget använder."MCP server. Förmågan är inte din, flera hosts behöver den, och den har en autentiseringsberättelse. Det är -problemet som kapitel 26 öppnade med, ett protokoll är svaret på det, och kapitel 27 levererar ett två gånger. En skill kan inte upptäckas av en host som aldrig har sett ditt filesystem — vilket är precis gapet som standardarbetet i slutet av det här kapitlet håller på att stänga.
"Den fyrahundrasidiga brand manual."
Länk till avsnittet: "Den fyrahundrasidiga brand manual."Ingen av de fyra. Det är kunskap att slå upp, inte en procedur att följa, och den hör hemma i ett index som agent söker i: kapitel 19. Att bunta den som nivå 3 är tillåtet och lockande och fel, eftersom modellen skulle behöva gissa vilken av fyrtio filer som innehåller svaret enbart utifrån deras namn. Vad som är en bra skill är den tvåsidiga proceduren som talar om för agent när den ska söka i indexet, vad en låg similarity score betyder, och hur den ska citera det den hittar.
"Återbetala aldrig mer än tvåhundra euro utan en människa."
Länk till avsnittet: "Återbetala aldrig mer än tvåhundra euro utan en människa."Ett tool med en approval gate, och aldrig en skill. Det här är fallet som spelar roll. Skrivet i en SKILL.md är gränsen en mening som modellen läser och oftast respekterar; skrivet i refund-toolen är den en branch som körs innan några pengar flyttas. En gräns som skulle genera dig om den korsades är inte dokumentation. Regeln, värd att memorera: om konsekvensen av att ignorera instruktionen är värre än ett dåligt formaterat svar hör instruktionen inte hemma i ett dokument.
Från intern jargong till standard, med siffrorna
Länk till avsnittet: Från intern jargong till standard, med siffrornaHistorien är kort, ovanligt väldaterad, och det är den del nästan ingen berättar.
Agent Skills publicerades den 16 oktober 2025 som en vendors funktion, definierad i det tillkännagivandet som "organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks", med de tre nivåerna beskrivna genom en analogi som är värd att behålla: "like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix".4
Den 18 december 2025 uppdaterades samma sida för att annonsera formatet som en öppen standard, med en egen specifikation på agentskills.io, governance öppen för bidrag och en referensvalidator.3 Läst den 7 september 2026 listar standardens client showcase fyrtiosex produkter — editors, terminals, cloud platforms och mobile runtimes, inklusive Anthropic, OpenAI, Google och Mistrals first-party coding agents — var och en med länk till sin egen setup-dokumentation.1
Konvergensen med MCP görs öppet, med siffror du kan kontrollera:
| Vad det är | Öppnad | Status 7 sep 2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: nya metoderna skills/list och skills/get, en skills capability, en list_changed notification | 13 januari 2026 | stängd, 24 februari 2026 |
| Skills Over MCP working group | definierar hur skills "discovered, distributed, and consumed through MCP"; möts varje vecka; sjutton listade medlemmar, två av dem leads | interest group 1 februari 2026; working group 16 april 2026 | aktiv |
| SEP-2640 | Skills Extension, Extensions Track: en skill:// resource-konvention, extension-identifierare io.modelcontextprotocol/skills, discovery genom skills/list och content genom resources/read | 23 april 2026 | under granskning |
Det intressanta är stängningen, inte förslagen. SEP-2076 bad om en fjärde primitive bredvid tools, resources och prompts. Working group som bildades ur det beslutade att svaret var nej: skills åker på den resources-primitive som redan finns, som en opt-in extension.5 Kapitel 26 mätte samma instinkt i protokollets egen changelog, där sampling, roots och logging deprecierades i stället för att behållas. Ett standards body som tar bort ett förslag det själv författat beter sig väl, och skälet att berätta den här historien med siffrorna framme är att sammanfattningarna du kommer att läsa på andra håll fortfarande beskriver skills som en MCP primitive.
Vart det går härnäst
Länk till avsnittet: Vart det går härnästDu kan nu skriva en SKILL.md, dela upp den i tre nivåer som betalar för sig, läsa frontmatter i någon annans skill och veta vilka fält som inte överlever en upload någon annanstans, och besvara frågan som hela kapitlet byggdes kring — system prompt, skill, tool eller server — med ett skäl snarare än en vana.
Vad du inte kan göra är att säga om din fungerar.
Varje påstående i det här kapitlet som spelade roll var en mätning, och det som spelade störst roll var en accuracy: 18 av 24 mot 10 av 24, med ett intervall på vardera och ett parat test mellan dem, eftersom två överlappande aggregat inte avgör något. Det instrumentet var lånat. En skills beskrivning är en routing key, dess body är en procedur som modellen kanske eller kanske inte följer, och båda är egenskaper du bara kan ta reda på genom att köra saken många gånger och poängsätta vad som kom tillbaka — vilket är ett golden set, en grader du skrev före körningen, och metriken som frågar om det fungerade varje gång snarare än minst en gång.
Kapitel 29 är det, och det öppnar med siffran som det här kapitlets metod beror på: en agent som lyckas sju gånger av tio ser ut som 70 %, och dess pass^10 — chansen att den lyckas med alla tio — är noll. Det mäter också tre graders på samma tvåhundra transcripts och får 0 %, 13 % och 26 % utan att regenerera en enda token. Innan du litar på meningen du just skrev in i en description behöver du instrumentet som kan säga att den är sämre än den du ersatte.
Källor och metod
Länk till avsnittet: Källor och metodVarje token-räkning i det här kapitlet producerades lokalt med tiktoken 0.14.0 och o200k_base-encoding, den 7 september 2026: över de fem tredjeparts-skills som listas i början av det här kapitlet, och över release-notes-skillen som skrevs för det här kapitlet, vars fullständiga text delvis återges ovan. Nivå 1 mäts som den enda raden - name: description som en host renderar in i system prompt; nivå 2 är SKILL.md-bodyn efter frontmatter; nivå 3 är alla andra filer i mappen. Kostnaderna använder kapitel 16:s uppmätta priser för gpt-5.6-terra, $2.00 per miljon input tokens och $0.20 per miljon cached input tokens, applicerade på dessa räkningar — de är aritmetik på uppmätta tokens, inte observationer av en livefaktura. Inget betalt API anropades för att skriva det här kapitlet.
Aktiveringsexperimentet körde Qwen/Qwen2.5-0.5B-Instruct i half precision på en konsument-GPU, greedy decoding, 24 requests över sex skills, två gånger — en gång med beskrivningar som anger vad skillen gör och när den gäller, en gång med beskrivningarna nedskurna till ett naket ämne i stil med specifikationens eget "poor example". Intervallen är Wilson på 95 %; den parade jämförelsen är ett tvåsidigt exakt sign test över de tio discordant cases; Wilson-intervallet är kapitel 4:s och det exakta parade sign test är kapitel 15:s, båda återanvända oförändrade. Läs magnituderna som en egenskap hos en mycket liten modell och metoden som överförbar.
De fem skills som mäts här är tredjepartspaket, inte skrivna för det här kapitlet: next-best-practices och next-cache-components från vercel-labs/next-skills, och vercel-composition-patterns, vercel-react-best-practices och vercel-react-native-skills från vercel-labs/agent-skills. Deras interna räkningar — 70 regelfiler, AGENTS.md på 26 362 tokens, metadata.json daterad januari 2026 och med påståendet "40+ rules" — lästes från filerna på disk den 7 september 2026 och är egenskaper hos den publicerade versionen, inte kritik av dess författare: varenda en är den sorts drift som uppstår i vilket dokumentationsträd som helst som redigeras oftare än det räknas.
Referenser
Länk till avsnittet: Referenser-
Agent Skills Specification och Overview,
agentskills.io/specificationochagentskills.io, lästa 7 september 2026. Källa till kataloglayouten; frontmatter-tabellen som återges ovan med varje begränsning (name1–64 tecken och matchande katalogen,description1–1024 tecken,compatibilityupp till 500,allowed-toolsmarkerad experimentell); de bra och dåligadescription-exemplen; trestegsbeskrivningen av stegvis exponering med dess token-budget (metadata ungefär 100 tokens, instruktioner under 5 000 rekommenderat, resurser efter behov) och rådet att hållaSKILL.mdunder 500 rader; noten att "the agent will load this entire file once it's decided to activate a skill"; konventionernascripts/,references/ochassets/; kommandotskills-ref validate; påståendet att formatet "was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products"; och client showcase, som listade fyrtiosex produkter på läsdatumet. ↩ ↩2 ↩3 ↩4 -
Skills i Claude Code-dokumentationen,
code.claude.com/docs/en/skills, läst 7 september 2026. Källa till hela fälttabellen som används i avsnittet "fälten som referensimplementationen lägger till" —when_to_use,argument-hint,arguments,disable-model-invocation,user-invocable,allowed-tools,disallowed-tools,model,effort,context,agent,background,hooks,paths,shell,metadata,license,compatibility— till beskrivningen av dynamic context injection där!`command`körs innan bodyn skickas, till regeln att enallowed-tools-tilldelning rensas vid nästa meddelande, och till compliance-noten att utanför Claude Code accepteras bara de sex specificerade fälten och alla andra orsakar ett hårt fel vid upload eller paketering. ↩ ↩2 ↩3 -
Agent Skills overview,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, läst 7 september 2026. Källa till nivåtabellen med sina fyra kolumner (Level 1 metadata, always, about 100 tokens per skill; Level 2 instructions, when triggered, under 5k tokens; Level 3+ resources, as needed, none until accessed); till meningen som citeras i sin helhet om att buntat innehåll inte medför någon context penalty; till "until a Skill is triggered, only its name and description occupy context"; till påståendet att ett scripts kod aldrig hamnar i context window och bara dess output gör det; och till säkerhetsavsnittet, som säger att du bara ska använda skills från betrodda källor och varnar för att en illasinnad skill "can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose" — kapitel 30:s ämne, som anländer genom ett dokument snarare än genom en tool description. ↩ ↩2 ↩3 -
Anthropic, Equipping agents for the real world with Agent Skills, 16 oktober 2025,
anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills, läst 7 september 2026. Källa till definitionen som citeras ovan, till analogin med innehållsförteckning/kapitel/bilaga, till de tre nivåerna som de ursprungligen beskrevs, och till inramningen att agents behöver "more composable, scalable, and portable ways" att få domänexpertis. Den kompletterande produktannonseringen påclaude.com/blog/skillsbär publiceringsdatumet 16 oktober 2025 och uppdateringen den 18 december 2025 som introducerade organisationsomfattande hantering och den öppna standarden. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, läst 7 september 2026. Källa till mission statement som citeras ovan, till changelog-datumen (interest group bildad 1 februari 2026, initial charter 14 april 2026, omvandlad till working group 16 april 2026, SEP-2640 länkad 25 april 2026), till ledarskapet och de sjutton listade medlemmarna, till veckomötestakten, och till success criterion som namnger utkastet Skills Extension som "a formal extension using existing Resources primitives". SEP-2076, Agent Skills as a First-Class MCP Primitive,github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, öppnades 13 januari 2026 och stängdes 24 februari 2026; den föreslogskills/list,skills/get, enskillsserver capability och enskills/list_changednotification, och definierade en skill som "a named bundle of instructions plus references to tools, prompts, and resources that together teach an agent how to perform a domain-specific workflow". SEP-2640, Skills Extension,.../pull/2640, öppnades 23 april 2026 på Extensions Track och bärskill://resource-konventionen och extension-identifierarenio.modelcontextprotocol/skills. Kapitel 26 listar samma working group bland protokollets valfria extensions. ↩