Agent Skills und SKILL.md: Progressive Disclosure, gemessen
Fünf echte Skills mit 128.374 token an Anweisungen belegen 253 token context. Kürzt man Beschreibungen, findet der agent sie nicht mehr.
Auf dieser Seite
Nimm ein Projekt, in dem fünf veröffentlichte Skills installiert sind. Das kosten sie.
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,668Einhundertachtundzwanzigtausend token an Anweisungen, Beispielen und Regeln — mehr, als in eine context window mit 128.000 token passt — und die laufenden Kosten dafür, alle fünf verfügbar zu haben, betragen 253 token, zwei Zehntel von einem Prozent. Nichts anderes in diesem Kurs hat diese Form. Eine Tool-Definition wird bei jeder Anfrage bezahlt, egal ob sie verwendet wird oder nicht, und Kapitel 26 hat einen MCP server mit 1.619 token gemessen, bevor er überhaupt etwas tut: zweiunddreißigmal so viel wie die durchschnittliche Level-1-Zeile in der Tabelle oben.
Dieses Kapitel handelt von dem Mechanismus, der dieses Verhältnis erzeugt, von den zwei Arten, wie er bricht, und von der Frage, die der Mechanismus erzwingt und fast niemand beantwortet: Wenn du ein Stück Wissen hast, an welchen von vier Orten gehört es?
Warum dieses Kapitel keine Programmiersprache hat
Link zum Abschnitt: Warum dieses Kapitel keine Programmiersprache hatKapitel 14 hat die Regel für die zweite Hälfte dieses Kurses festgelegt — Verbindungen, Retries und Abbruch sind TypeScript — und fünf Ausnahmen benannt. Dies ist eine davon, und der Grund ist keine Vorliebe.
Ein skill ist eine Markdown-Datei. Keine Datei, die ein Programm konfiguriert, keine Datei, die ein Programm kompiliert: ein Dokument, das das Modell liest, so wie es die Nachricht liest, die du getippt hast. Diesem Kapitel eine Programmiersprache zu geben, hieße, das Format nicht verstanden zu haben, und genau dieses Missverständnis ist das mit Abstand häufigste über Skills. Alles unten ist Markdown und YAML, plus ein kleines Shell-Skript, das gerade dazu dient zu zeigen, wo Code in einen skill gehört und wo nicht.
Die Rechnung, die es löst, und es ist die Arithmetik aus Kapitel 16
Link zum Abschnitt: Die Rechnung, die es löst, und es ist die Arithmetik aus Kapitel 16Hier ist eine echte Anweisung: wie ein Unternehmen seine Release Notes schreibt. Es ist ein Verfahren, keine Vorliebe — es hat eine geordnete Schrittfolge, eine Taxonomie, eine Stimme, ein Template und ein Skript, das das Rohmaterial sammelt.
Pack alles davon in den system prompt, wie es die meisten Teams tun, und die Arithmetik aus Kapitel 16 übernimmt. Ein system prompt ist ein Präfix, und ein Präfix wird bei jedem Aufruf bezahlt. Gemessen mit o200k_base über den für dieses Kapitel geschriebenen Ordner:
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.0037Vierundzwanzigmal günstiger, wenn es verwendet wird, siebenunddreißigmal günstiger, wenn nicht. Die Preise sind die aus Kapitel 16: $2,00 pro Million input token.
Nun der ehrliche Einwand, denn ein Kapitel, das ihn überspringt, wäre Werbung. prompt caching schließt die Kostenschere weitgehend. Ein system prompt ist stabil und steht am Anfang, was ihn zum besten Cache-Kandidaten überhaupt macht; bei $0,20 pro Million für cached input kosten dieselben 68.640 token $0,0168 statt $0,1373. Immer noch dreimal so viel wie der skill, aber keine andere Größenordnung mehr.
Das Geld war nie das stärkste Argument. Dieses hier ist es:
Caching macht ein dauerhaftes Präfix günstiger. Es macht es nicht kleiner.
Bei Turn 40 hat die system-prompt-Version immer noch 1.716 token Release-Note-Policy im Fenster sitzen, während es in der Unterhaltung um etwas völlig anderes geht, und konkurriert um das, was Kapitel 24 das attention budget des Modells nannte. Die skill-Version hat 46. Cache das Falsche, und du hast einen Rabatt auf eine Ablenkung gekauft.
Als Formel geschrieben, mit Turns, den Metadaten, dem Body, dem ganzen Bundle und der Menge der gebündelten Dateien, die tatsächlich gelesen werden:
Das ganze Kapitel ist der Unterschied zwischen dem Multiplizieren des zweiten Terms mit und dem Multiplizieren mit eins oder mit null.
Was ein skill tatsächlich ist
Link zum Abschnitt: Was ein skill tatsächlich istEin skill ist ein Verzeichnis. Die Spezifikation ist kurz genug, um sie vollständig wiederzugeben:
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 muss mit YAML-Frontmatter beginnen, und genau zwei Felder sind erforderlich: name und description.1 Vier weitere sind optional, und keine anderen sind definiert:
| Feld | Erforderlich | Einschränkung |
|---|---|---|
name | ja | 1–64 Zeichen, Kleinbuchstaben, Ziffern und Bindestriche; kein führender, abschließender oder doppelter Bindestrich; muss dem Verzeichnisnamen entsprechen |
description | ja | 1–1024 Zeichen, nicht leer; sagt, was der skill tut und wann er zu verwenden ist |
license | nein | ein Lizenzname oder der Name einer gebündelten Lizenzdatei |
compatibility | nein | bis zu 500 Zeichen: vorgesehenes Produkt, erforderliche Pakete, Netzwerkzugriff |
metadata | nein | eine freie Map von String-Schlüsseln auf String-Werte, für dein eigenes Tooling |
allowed-tools | nein | durch Leerzeichen getrennte Liste vorab genehmigter Tools; als experimentell markiert |
Hier ist der Release-Notes-skill, vollständig, mit einem Body unter dreißig Zeilen:
---
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.Lies, was dieser Body ist. Er ist nicht die Policy — er ist ein Inhaltsverzeichnis mit einer Reihenfolge der Arbeitsschritte. Die Policy liegt in drei Dateien, die er benennt und nicht einbindet. Und Schritt eins übergibt Arbeit an ein Skript, weil der Code eines Skripts nie in die context window gelangt: nur seine Ausgabe.2
Drei Level, und was jedes davon kostet
Link zum Abschnitt: Drei Level, und was jedes davon kostetDas Lademodell hat einen Namen und drei Stufen. Die Spezifikation nennt sie mit einem angehängten token-Budget:1
- Metadaten, etwa 100 token:
nameunddescription, beim Start für jeden installierten skill geladen. - Anweisungen, empfohlen unter 5.000 token: der
SKILL.md-Body, geladen, wenn der skill aktiviert wird. - Ressourcen, nach Bedarf: gebündelte Dateien, nur geladen, wenn etwas sie erfordert.
Die Referenzdokumentation setzt eine vierte Spalte auf dieselbe Tabelle — when loaded, token cost, content — und die entscheidende Zeile ist die dritte: none until accessed.3 Der Satz, der das ganze Kapitel zusammenfasst, steht dort ebenfalls:
Files don't consume context until accessed, so Skills can include comprehensive API documentation, large datasets, or extensive examples. There's no context penalty for bundled content that isn't used.3
Die gemessene Tabelle am Anfang dieses Kapitels ist diese Behauptung, geprüft an fünf Skills, die niemand für diesen Artikel geschrieben hat. Zwei Zeilen verdienen es, gegeneinander gelesen zu werden.
next-best-practices hat einen Body mit 966 token, der auf neunzehn Dateien mit 19.374 token verweist. Bitte ihn, einen Hydration-Fehler zu beheben, und der agent liest den Body plus hydration-error.md: 1.409 token von 20.340, ein Faktor von vierzehn, und die anderen achtzehn Dateien werden nie geöffnet.
next-cache-components hat einen Body mit 2.334 token und überhaupt keine gebündelten Dateien. Er ist ein gültiger skill und ein gut geschriebener, und er hat kein Level 3, das offengelegt werden könnte. Das ist die ehrliche Grenze der Technik: Progressive Disclosure spart nur, wenn es etwas gibt, das sich aufschieben lässt. Ein skill, dessen Wissen sich nicht zerlegen lässt, bezahlt bei Aktivierung seinen ganzen Body, und der einzige verbleibende Hebel ist, ihn nicht zu aktivieren.
So bricht es: Die Beschreibung ist die ganze Schnittstelle
Link zum Abschnitt: So bricht es: Die Beschreibung ist die ganze SchnittstelleLevel 1 ist eine Routing-Entscheidung, die aus einem Satz getroffen wird. Nichts anderes an einem skill beeinflusst, ob er je geöffnet wird — nicht die Qualität des Bodys, nicht die Beispiele, nicht die Skripte. Die Beschreibung ist also keine Dokumentation. Sie ist die Query-Oberfläche, und sie kann falsch sein.
Die Spezifikation sagt das in Form eines guten und eines schlechten Beispiels, und das schlechte Beispiel besteht aus vier Wörtern: description: Helps with PDFs.1 Das lohnt sich zu messen, statt es einfach hinzunehmen.
Sechs Skills, jeder mit einer plausiblen Beschreibung, die sagt, was er tut und wann er zu verwenden ist. Vierundzwanzig Anfragen, vier pro skill, so formuliert, wie ein Mensch sie formulieren würde, und ohne den skill je beim Namen zu nennen. Das Modell sieht die sechs Zeilen in seinem system prompt und muss mit einem Namen oder mit NONE antworten. Greedy decoding, damit es reproduzierbar ist. Dann dieselben vierundzwanzig Anfragen mit denselben sechs Skills, und die Beschreibungen auf ihr bloßes Thema zurückgeschnitten.
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 24Lies zuerst die Intervalle, wie Kapitel 4 darauf bestand und Kapitel 29 wieder darauf bestehen wird: Sie überlappen, und vierundzwanzig Fälle können zwei Systeme nicht allein anhand ihrer Aggregate ranken. Der gepaarte Vergleich entscheidet es, und er ist das Instrument aus Kapitel 15: Von den zehn Fällen, in denen die beiden Arme sich unterschieden, gingen neun an die reichhaltigen Beschreibungen und einer an die dünnen. Das ist am üblichen Schwellenwert belegt.
Jetzt lies die letzte Zeile, denn sie ist der eigentliche Befund. Mit dünnen Beschreibungen antwortete das Modell bei neun von vierundzwanzig Anfragen mit NONE. Nicht der falsche skill: kein skill. Hier sind vier davon, wörtlich:
"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-practicesEin perfekter sql-review-skill war installiert, mit Body und Beispielen und einer Checkliste, und er wurde nie geöffnet, dreimal hintereinander, bei den drei Fragen, für die er geschrieben war. Level 2 und 3 sind irrelevant für einen skill, den Level 1 nie erreicht.
Die Kosten der Korrektur: 214 token, die Differenz zwischen 295 und 81, verteilt auf sechs Skills. Das ist der Befund aus Kapitel 18, von der anderen Seite kommend. Dort brachte die Änderung nur der Beschreibung eines Tools die Datumsformatierung von 2 korrekten von 24 auf 24 von 24. Hier bringt die Änderung nur der Beschreibung eines skills die Aktivierung von 10 von 24 auf 18. In beiden Fällen ist der günstigste Fix im System ein Satz, und in beiden Fällen muss der Satz den Trigger benennen und nicht nur das Thema: nicht, was das Ding ist, sondern was der Nutzer gerade gesagt haben wird, wenn es zutrifft.
Ein Vorbehalt, den dieses Kapitel seinen eigenen Standards schuldet. Dies ist ein Modell mit einer halben Milliarde Parametern, und ein Frontier-Modell routet deutlich besser als 75 %. Lies den Mechanismus, nicht die Größenordnung: Das Routing-Signal ist einen Satz lang, egal welches Modell es liest, und kein Modell kann nach Informationen auswählen, die du nicht in diesen Satz geschrieben hast.
Es bricht erneut: die Notausgangsdatei, die 26.362 token kostet
Link zum Abschnitt: Es bricht erneut: die Notausgangsdatei, die 26.362 token kostetDer zweite Fehler ist das Gegenteil des ersten. Der skill wird gefunden, die Level sind korrekt aufgeteilt, und der agent liest trotzdem alles.
vercel-react-best-practices ist ein wirklich gut gebauter skill. Sein 1.670-token-Body ist eine Prioritätstabelle aus acht Kategorien und eine Schnellreferenz, die 70 Regeldateien nennt, jeweils eine Zeile. Die Regeln liegen auf der Platte daneben: 70 Dateien, kleinste 132 token, Median 319, größte 1.052. Stell ihm eine Frage zu Barrel Imports, und die ehrlichen Kosten sind der Body plus eine Datei — unter 2.400 token gegenüber einem Bundle von 53.670.
Dann sagt die letzte Zeile des Bodys dies:
## Full Compiled Document
For the complete guide with all rules expanded: `AGENTS.md`AGENTS.md hat 26.362 token. Es sind die 70 Regeldateien, aneinandergereiht: Ihre Summe ist 25.784, und die Differenz sind die Überschriften zwischen ihnen. Der skill bietet dem agent also die Wahl zwischen dem Lesen einer medianen Regel mit 319 token und dem Lesen desselben Inhalts, komplett, zum dreiundachtzigfachen Preis — und er bietet diese Wahl in einem Satz ohne angehängte Kosten und ohne Bedingung, wann sie zu treffen ist.
Das ist kein Bug, und die Datei ist nicht falsch; ein kompiliertes Dokument ist für einen Menschen wirklich nützlich, und für einen agent, der gebeten wurde, eine ganze Codebase zu auditieren. Es ist eine Level-3-Datei mit einer Level-2-Einladung, und die Lektion verallgemeinert sich über diesen einen skill hinaus: Jeder Pfad aus einer SKILL.md sollte sagen, was er kostet und wann er sich lohnt, weil das Modell nicht wissen kann, dass ein Dateiname dreiundachtzigmal teurer ist als der Dateiname darüber.
Derselbe Ordner enthält eine kleinere Lektion über Veralten. Der Body sagt „70 rules across 8 categories“ und listet 70 auf; das Verzeichnis rules/ enthält 72 Dateien, von denen zwei Scaffolding sind (_template.md und _sections.md); und die Sidecar-Datei metadata.json sagt „40+ rules“. Drei Zählungen derselben Menge in einem Ordner, eine davon richtig, eine davon arithmetisch, und eine davon aus einer früheren Version übrig geblieben. Ein skill ist ein Dokument, und Dokumente verrotten genauso wie ein Code-Kommentar, der vom Code daneben abgedriftet ist — mit dem Unterschied, dass dieses hier von einer Maschine gelesen wird, die keine Augenbraue hebt.
Die Felder, die die Referenzimplementierung hinzufügt, und die Portabilitätsfalle
Link zum Abschnitt: Die Felder, die die Referenzimplementierung hinzufügt, und die PortabilitätsfalleDie offene Spezifikation definiert sechs Frontmatter-Felder. Die Referenzimplementierung, Claude Code, akzeptiert zwanzig.2 Fünf Gruppen sollte man namentlich kennen, weil an ihnen das Format aufhört, nur ein Dokument zu sein:
Berechtigung und Aufruf. allowed-tools genehmigt Tools vorab für den Turn, der den skill aufgerufen hat, und die Freigabe wird mit der nächsten Nachricht zurückgesetzt; disallowed-tools entfernt sie. disable-model-invocation verhindert, dass das Modell ihn eigenständig lädt, wodurch der skill zu einem Befehl wird, den ein Mensch ausführt. user-invocable: false tut das Gegenteil: vor Menschen verborgen, nur für das Modell verfügbar, für Hintergrundwissen.
Isolation und Kosten. context: fork führt den skill in einem separaten sub-agent-context mit eigener window aus — die sub-agent-Grenze aus Kapitel 25 als eine YAML-Zeile — wobei agent auswählt, welche Art, und background entscheidet, ob der Turn wartet. model und effort ändern, welches Modell läuft, während der skill aktiv ist, nur für diesen Turn.
Argumente (arguments, argument-hint) lassen einen Menschen Werte übergeben, die in den Body eingesetzt werden, wodurch ein skill als Slash Command nutzbar wird. Scoping (paths) begrenzt die Aktivierung auf Dateien, die einem Glob entsprechen. Und dynamische context injection ist das, was das mentale Modell verändert: Eine Zeile der Form !`git diff HEAD` läuft bevor der Body gesendet wird, und ihre Ausgabe wird in den Text eingesetzt. Das Dokument ist ein Template, und ein Teil davon wird zur Lesezeit berechnet.
Nun die Falle, und sie steht in derselben Dokumentation: Außerhalb von Claude Code — im Webprodukt, über die Skills API, beim Packaging — sind nur die sechs spezifizierten Felder erlaubt, und jedes andere Feld ist ein harter Fehler beim Upload.2 Ein skill, der in einem Produkt perfekt funktioniert, lässt sich also in einem anderen Produkt desselben Anbieters nicht installieren, und er scheitert am Frontmatter statt an irgendetwas, das du durch Lesen der Prosa testen könntest. Wenn dein skill portabel sein soll, sind die sechs Felder das gesamte Budget. Wenn nicht, sag es in compatibility, das genau dafür existiert.
Die Tabelle, für die dieses Kapitel existiert
Link zum Abschnitt: Die Tabelle, für die dieses Kapitel existiertVier Dinge werden ständig miteinander verwechselt, und die Verwechslung ist keine Wortklauberei: Falsch zu wählen kostet bei jedem Turn Geld oder kostet dich eine Garantie, von der du dachtest, du hättest sie.
| System prompt | Skill | Tool | MCP server | |
|---|---|---|---|---|
| Was es ist | Text in jeder Anfrage | ein Ordner, dessen Wurzel eine SKILL.md ist | ein JSON Schema plus ein Endpoint in deinem Code | ein Prozess oder Service, der ein Protokoll spricht |
| Was das Modell tut | liest ihn, immer | liest ihn, wenn es entscheidet, dass die Beschreibung passt | ruft es auf und wartet auf dein Ergebnis | ruft ihn über den Host auf, ein Client pro server |
| Was es kostet | seine volle Länge, jeden Turn, für immer | etwa 50 token pro Turn; den Body einmal, wenn verwendet | sein Schema, jeden Turn; Ausführung, wenn aufgerufen | jedes Schema plus instructions des servers, jeden Turn |
| Was es garantieren kann | nichts — es ist Rat | nichts — es ist Rat, den das Modell überspringen kann | alles, was dein Code erzwingt, bevor er handelt | alles, was der server erzwingt |
| Wer es schreibt | du | du, ein Kollege oder ein Anbieter | du | jemand anderes, für viele Hosts |
| Kapitel | 15 | dieses | 18 | 26 und 27 |
Die zwei fett markierten Zeilen sind der ganze Unterschied. Ein skill wird gelesen; ein Tool wird aufgerufen. Ein skill ist Prosa, die in der context window ankommt und mit allem anderen dort um attention konkurriert; das Modell kann ihr folgen, sie falsch lesen oder ignorieren, und nichts im System bemerkt es. Ein Tool ist ein Aufruf, der die Hände des Modells vollständig verlässt: Dein Code erhält Argumente, validiert sie, prüft Berechtigungen und entscheidet. Kapitel 18 formulierte es so, dass das Modell vorschlägt und dein Code verfügt, und genau diese Trennung hat ein skill nicht.
Also sechs echte Fälle, gelöst:
„Antworte in der Sprache des Nutzers. Nenne niemals einen Preis, der dir nicht gegeben wurde.“
Link zum Abschnitt: „Antworte in der Sprache des Nutzers. Nenne niemals einen Preis, der dir nicht gegeben wurde.“System prompt. Es gilt bei jedem Turn, es ist eine Einschränkung statt eines Verfahrens, und es ist zwei Sätze lang. Etwas, das immer gilt, hat nichts progressiv offenzulegen, und bei jedem Turn für eine Discovery-Zeile zu bezahlen, um nicht bei jedem Turn für zwei Sätze zu bezahlen, ist keine Ersparnis.
„Wie wir hier Release Notes schreiben.“
Link zum Abschnitt: „Wie wir hier Release Notes schreiben.“Skill. Prozedural, vielleicht in einem von vierzig Turns gebraucht, zerlegbar in Stimme, Taxonomie und Beispiele, und es ist Prosa, die ein Mensch bearbeiten wird. Das ist die Form, für die das Format entworfen wurde, und die Messung oben zeigt, was es spart.
„Eine Bestellung anhand ihrer Kennung in der Lagerdatenbank nachschlagen.“
Link zum Abschnitt: „Eine Bestellung anhand ihrer Kennung in der Lagerdatenbank nachschlagen.“Tool. Dahinter liegt eine deterministische Funktion, und das Modell darf die Query nicht improvisieren. Das als skill zu schreiben — ein Dokument, das erklärt, wie man das Lager abfragt — gibt dem Modell das Schema und hofft. Ein Schema plus ein Endpoint gibt ihm eine Antwort.
„Issues in unserem Tracker lesen und schreiben, aus jedem agent-Produkt, das das Unternehmen nutzt.“
Link zum Abschnitt: „Issues in unserem Tracker lesen und schreiben, aus jedem agent-Produkt, das das Unternehmen nutzt.“MCP server. Die Fähigkeit gehört nicht dir, mehrere Hosts brauchen sie, und sie hat eine Authentifizierungs-Story. Das ist das -Problem, mit dem Kapitel 26 eröffnet hat, ein Protokoll ist die Antwort darauf, und Kapitel 27 liefert eines zweimal aus. Ein skill kann von einem Host nicht entdeckt werden, der dein Dateisystem nie gesehen hat — genau diese Lücke schließt die Standardisierungsarbeit am Ende dieses Kapitels.
„Das vierhundertseitige Markenhandbuch.“
Link zum Abschnitt: „Das vierhundertseitige Markenhandbuch.“Keines der vier. Es ist Wissen zum Nachschlagen, kein Verfahren zum Befolgen, und es gehört in einen Index, den der agent durchsucht: Kapitel 19. Es als Level 3 zu bündeln ist erlaubt und verlockend und falsch, weil das Modell allein aus ihren Namen raten müsste, welche von vierzig Dateien die Antwort enthält. Was ein guter skill ist: das zweiseitige Verfahren, das dem agent sagt, wann er diesen Index durchsuchen soll, was ein niedriger Similarity Score bedeutet und wie er zitiert, was er findet.
„Niemals mehr als zweihundert Euro ohne einen Menschen erstatten.“
Link zum Abschnitt: „Niemals mehr als zweihundert Euro ohne einen Menschen erstatten.“Ein Tool mit Approval Gate, und niemals ein skill. Das ist der Fall, der zählt. In eine SKILL.md geschrieben, ist das Limit ein Satz, den das Modell liest und meistens respektiert; in das Erstattungs-Tool geschrieben, ist es ein Branch, der läuft, bevor Geld bewegt wird. Ein Limit, dessen Überschreitung dir peinlich wäre, ist keine Dokumentation. Die Regel, die du dir merken solltest: Wenn die Konsequenz des Ignorierens der Anweisung schlimmer ist als eine schlecht formatierte Antwort, gehört die Anweisung nicht in ein Dokument.
Vom Hausjargon zum Standard, mit Zahlen
Link zum Abschnitt: Vom Hausjargon zum Standard, mit ZahlenDie Geschichte ist kurz, ungewöhnlich gut datiert, und es ist der Teil, den fast niemand erzählt.
Agent Skills wurden am 16. Oktober 2025 als Feature eines Anbieters veröffentlicht, in dieser Ankündigung definiert als „organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks“, mit den drei Leveln beschrieben durch eine Analogie, die es wert ist, behalten zu werden: „like a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix“.4
Am 18. Dezember 2025 wurde dieselbe Seite aktualisiert, um das Format als offenen Standard anzukündigen, mit eigener Spezifikation unter agentskills.io, Governance offen für Beiträge und einem Referenz-Validator.3 Gelesen am 7. September 2026 listet die Client-Showcase des Standards sechsundvierzig Produkte — Editoren, Terminals, Cloud-Plattformen und mobile Runtimes, einschließlich der First-Party-Coding-agents von Anthropic, OpenAI, Google und Mistral — jeweils mit Link auf die eigene Setup-Dokumentation.1
Die Konvergenz mit MCP geschieht offen, mit Zahlen, die du prüfen kannst:
| Was es ist | Geöffnet | Stand am 7. Sep. 2026 | |
|---|---|---|---|
| SEP-2076 | Agent Skills as a First-Class MCP Primitive: neue Methoden skills/list und skills/get, eine skills-Capability, eine list_changed-Notification | 13. Januar 2026 | geschlossen, 24. Februar 2026 |
| Skills Over MCP working group | definiert, wie Skills über MCP „discovered, distributed, and consumed“ werden; trifft sich wöchentlich; siebzehn gelistete Mitglieder, zwei davon Leads | Interest Group 1. Februar 2026; Working Group 16. April 2026 | aktiv |
| SEP-2640 | Skills Extension, Extensions Track: eine skill://-Resource-Convention, Extension-Identifier io.modelcontextprotocol/skills, Discovery über skills/list und Content über resources/read | 23. April 2026 | in Review |
Der interessante Teil ist die Schließung, nicht die Vorschläge. SEP-2076 bat um ein viertes Primitive neben Tools, Resources und Prompts. Die daraus entstandene Working Group entschied, dass die Antwort nein lautet: Skills reiten auf dem bereits existierenden Resources-Primitive, als Opt-in-Extension.5 Kapitel 26 maß denselben Instinkt im eigenen Changelog des Protokolls, wo Sampling, Roots und Logging deprecated wurden, statt behalten zu werden. Ein Standardisierungsgremium, das einen eigenen Vorschlag entfernt, verhält sich gut, und der Grund, diese Geschichte mit den Zahlen davor zu erzählen, ist, dass die Zusammenfassungen, die du anderswo lesen wirst, Skills immer noch als MCP Primitive beschreiben.
Wohin es als Nächstes geht
Link zum Abschnitt: Wohin es als Nächstes gehtDu kannst jetzt eine SKILL.md schreiben, sie in drei Level aufteilen, die sich bezahlt machen, das Frontmatter eines fremden skills lesen und wissen, welche Felder einen Upload anderswo nicht überleben werden, und die Frage beantworten, um die dieses ganze Kapitel gebaut wurde — system prompt, skill, Tool oder server — mit einem Grund statt aus Gewohnheit.
Was du nicht kannst: sagen, ob deiner funktioniert.
Jede Behauptung in diesem Kapitel, die wichtig war, war eine Messung, und die wichtigste war eine Accuracy: 18 von 24 gegen 10 von 24, mit einem Intervall auf beiden und einem gepaarten Test dazwischen, weil zwei überlappende Aggregate nichts entscheiden. Dieses Instrument war geliehen. Die Beschreibung eines skills ist ein Routing-Key, sein Body ist ein Verfahren, dem das Modell folgen kann oder nicht, und beide Eigenschaften findest du nur heraus, indem du das Ding viele Male laufen lässt und bewertest, was zurückkam — das heißt ein golden set, ein Grader, den du vor dem Lauf geschrieben hast, und die Metrik, die fragt, ob es jedes Mal funktioniert hat statt mindestens einmal.
Kapitel 29 ist genau das, und es beginnt mit der Zahl, von der die Methode dieses Kapitels abhängt: Ein agent, der sieben von zehn Malen erfolgreich ist, sieht aus wie 70 %, und sein pass^10 — die Wahrscheinlichkeit, dass er alle zehn schafft — ist null. Es misst außerdem drei Grader auf denselben zweihundert Transkripten und erhält 0 %, 13 % und 26 %, ohne ein einziges token neu zu generieren. Bevor du dem Satz vertraust, den du gerade in eine description geschrieben hast, brauchst du das Instrument, das dir sagen kann, dass er schlechter ist als der, den du ersetzt hast.
Quellen und Methode
Link zum Abschnitt: Quellen und MethodeJede token-Zählung in diesem Kapitel wurde lokal mit tiktoken 0.14.0 und dem o200k_base-Encoding am 7. September 2026 erzeugt: über die fünf Drittanbieter-Skills, die am Anfang dieses Kapitels aufgeführt sind, und über den für dieses Kapitel geschriebenen release-notes-skill, dessen vollständiger Text oben teilweise wiedergegeben ist. Level 1 wird als die einzelne Zeile - name: description gemessen, die ein Host in den system prompt rendert; Level 2 ist der SKILL.md-Body nach dem Frontmatter; Level 3 ist jede andere Datei im Ordner. Die Kosten verwenden die in Kapitel 16 gemessenen Preise für gpt-5.6-terra, $2,00 pro Million input token und $0,20 pro Million cached input token, angewandt auf diese Zählungen — sie sind Arithmetik auf gemessenen token, keine Beobachtungen einer Live-Rechnung. Zum Schreiben dieses Kapitels wurde keine bezahlte API aufgerufen.
Das Aktivierungsexperiment lief mit Qwen/Qwen2.5-0.5B-Instruct in halber Präzision auf einer Consumer-GPU, Greedy decoding, 24 Anfragen über sechs Skills, zweimal — einmal mit Beschreibungen, die sagen, was der skill tut und wann er zutrifft, einmal mit Beschreibungen, die im Stil des eigenen „poor example“ der Spezifikation auf ein bloßes Thema gekürzt wurden. Intervalle sind Wilson bei 95 %; der gepaarte Vergleich ist ein zweiseitiger exakter Vorzeichentest über die zehn diskordanten Fälle; das Wilson-Intervall ist das aus Kapitel 4 und der exakte gepaarte Vorzeichentest der aus Kapitel 15, beide unverändert wiederverwendet. Lies die Größenordnungen als Eigenschaft eines sehr kleinen Modells und die Methode als übertragbar.
Die fünf hier gemessenen Skills sind Drittanbieterpakete, nicht für dieses Kapitel geschrieben: next-best-practices und next-cache-components aus vercel-labs/next-skills, und vercel-composition-patterns, vercel-react-best-practices und vercel-react-native-skills aus vercel-labs/agent-skills. Ihre internen Zählungen — 70 Regeldateien, AGENTS.md mit 26.362 token, metadata.json datiert Januar 2026 und mit der Behauptung „40+ rules“ — wurden am 7. September 2026 aus den Dateien auf der Platte gelesen und sind Eigenschaften dieser veröffentlichten Version, keine Kritik an ihren Autoren: Jede einzelne davon ist genau die Art Drift, die in jedem Dokumentationsbaum auftritt, der häufiger bearbeitet als gezählt wird.
Referenzen
Link zum Abschnitt: Referenzen-
Agent Skills Specification und Overview,
agentskills.io/specificationundagentskills.io, gelesen am 7. September 2026. Quelle des Verzeichnislayouts; der oben wiedergegebenen Frontmatter-Tabelle mit jeder Einschränkung (name1–64 Zeichen und passend zum Verzeichnis,description1–1024 Zeichen,compatibilitybis zu 500,allowed-toolsals experimentell markiert); der guten und schlechtendescription-Beispiele; der dreistufigen Progressive-Disclosure-Beschreibung mit ihrem token-Budget (Metadaten etwa 100 token, Anweisungen empfohlen unter 5.000, Ressourcen nach Bedarf) und des Ratschlags,SKILL.mdunter 500 Zeilen zu halten; des Hinweises, dass „the agent will load this entire file once it's decided to activate a skill“; der Konventionenscripts/,references/undassets/; des Befehlsskills-ref validate; der Aussage, dass das Format „was originally developed by Anthropic, released as an open standard, and has been adopted by a growing number of agent products“; und der Client-Showcase, die am Lesedatum sechsundvierzig Produkte aufführte. ↩ ↩2 ↩3 ↩4 -
Skills in der Claude-Code-Dokumentation,
code.claude.com/docs/en/skills, gelesen am 7. September 2026. Quelle der vollständigen Feldtabelle, die im Abschnitt „Die Felder, die die Referenzimplementierung hinzufügt“ verwendet wurde —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— der Beschreibung der dynamischen context injection, bei der!`command`läuft, bevor der Body gesendet wird, der Regel, dass eineallowed-tools-Freigabe mit der nächsten Nachricht zurückgesetzt wird, und des Compliance-Hinweises, dass außerhalb von Claude Code nur die sechs spezifizierten Felder akzeptiert werden und jedes andere beim Upload oder Packaging einen harten Fehler verursacht. ↩ ↩2 ↩3 -
Agent Skills Overview,
platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, gelesen am 7. September 2026. Quelle der Level-Tabelle mit ihren vier Spalten (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); des vollständig zitierten Satzes darüber, dass gebündelte Inhalte keine context penalty verursachen; von „until a Skill is triggered, only its name and description occupy context“; der Aussage, dass der Code eines Skripts nie in die context window gelangt und nur seine Ausgabe das tut; und des Security-Abschnitts, der dir sagt, Skills nur aus vertrauenswürdigen Quellen zu verwenden, und warnt, dass ein bösartiger skill „can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose“ — das Thema von Kapitel 30, durch ein Dokument kommend statt durch eine Tool-Beschreibung. ↩ ↩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, gelesen am 7. September 2026. Quelle der oben zitierten Definition, der Inhaltsverzeichnis/Kapitel/Anhang-Analogie, der drei Level in ihrer ursprünglichen Beschreibung und des Framings, dass agents „more composable, scalable, and portable ways“ brauchen, um Domänenexpertise zu erhalten. Die begleitende Produktankündigung unterclaude.com/blog/skillsenthält das Veröffentlichungsdatum 16. Oktober 2025 und das Update vom 18. Dezember 2025, das organisationsweite Verwaltung und den offenen Standard einführte. ↩ -
Skills Over MCP Charter,
modelcontextprotocol.io/community/working-groups/skills-over-mcp, gelesen am 7. September 2026. Quelle des oben zitierten Mission Statements, der Changelog-Daten (Interest Group gegründet am 1. Februar 2026, initiale Charter 14. April 2026, umgewandelt in eine Working Group am 16. April 2026, SEP-2640 verlinkt am 25. April 2026), der Führung und der siebzehn gelisteten Mitglieder, des wöchentlichen Meeting-Rhythmus und des Erfolgskriteriums, das die Draft Skills Extension als „a formal extension using existing Resources primitives“ bezeichnet. SEP-2076, Agent Skills as a First-Class MCP Primitive,github.com/modelcontextprotocol/modelcontextprotocol/pull/2076, wurde am 13. Januar 2026 geöffnet und am 24. Februar 2026 geschlossen; es schlugskills/list,skills/get, eineskills-Server-Capability und eineskills/list_changed-Notification vor und definierte einen skill als „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, wurde am 23. April 2026 im Extensions Track geöffnet und enthält dieskill://-Resource-Convention und den Extension-Identifierio.modelcontextprotocol/skills. Kapitel 26 listet dieselbe Working Group unter den optionalen Extensions des Protokolls. ↩