Skill mining: Fra 3.500 kandidater til 466 kapabiliteter
> Vi screenede 3.500 skill-kandidater og adopterede 466. En systematisk mining- og indtagelsesløkke til at opbygge et sammenhængende skill-bibliotek til AI-agenter i stor skala.
Tallene i dette indlæg afspejler systemet på udgivelsestidspunktet (januar 2026). Se vores team-side for aktuelle tal.
3.500-skill-problemet
Da vi begyndte at bygge et agent-orkestreringssystem, stod vi over for en interessant udfordring: der findes tusindvis af potentielle skills spredt ud over AI-økosystemet. GitHub-repositorier, leverandørdokumentation, community-projekter, interne mønstre - skills findes overalt. Men hvilke betyder noget? Hvilke virker? Og hvordan vedligeholder man et sammenhængende skill-bibliotek, som agenter rent faktisk kan bruge?
Vores svar: en systematisk mining- og indtagelsesløkke.
Tallene i dag
Lidt over tre måneder efter Anthropic lancerede Agent Skills den 16. oktober 2025, sådan så vores status ud, da dette indlæg blev udgivet den 27. januar 2026:
| Metrik | Antal |
|---|---|
| Identificerede kandidater | 3.500+ |
| Adopterede skills | 466 |
| Leverandør-skills | 373 |
| Interne skills | 93 |
| Aktive leverandører | 25+ |
| Gennemsnitlige tokens pr. skill | 2.834 |
| Refererede værktøjer | 89 |
| Unikke tags | 635 |
Vi har gennemgået over 3.500 skill-kandidater. Vi har adopteret 466. Det er en adoptionsrate på 13% - og den selektivitet er tilsigtet.
Videnslagssystemet
Ikke alle skills er skabt lige. Vi organiserer dem i fem videnslag (K0-K4), der hver repræsenterer et forskelligt anvendelsesscope:
K0: Foundations (universel)
Skills, enhver agent bør have. Disse repræsenterer “god tænker”-kapabiliteter, der virker overalt.
foundations/
├── test-first-discipline # TDD: Red-Green-Refactor
├── evidence-based-completion # Verify before claiming done
├── systematic-debugging # Root cause methodology
├── structured-planning # Break work into tasks
└── context-budget-awareness # Manage token consumption
K0-skills er portable til ethvert projekt, ethvert domæne, enhver stack. De indkoder universelle kognitive mønstre.
K1: Identities (disciplin)
“God ingeniør”- eller “god forsker”-skills, der gælder på tværs af projekter inden for en disciplin.
identities/
├── research-workflows # Multi-source research
├── web-extraction-playbook # Content extraction
├── code-review # PR review patterns
└── cli-interface-standards # CLI design patterns
K2: Domains (fagekspertise)
“God databaseekspert”- eller “god sikkerhedsingeniør”-skills, der er portable inden for et felt.
domains/
├── schema-migration-workflow # Safe migration patterns
├── rpc-validation-checklist # RPC health checks
├── auth-validation-checklist # JWT/OAuth patterns
└── secrets-audit-checklist # Credential scanning
K3: Stacks (teknologi)
“God Supabase-bruger”- eller “god Cloudflare-udvikler”-skills til specifikke teknologistakke.
stacks/
├── maguyva-quickstart # Our semantic search patterns
├── cloudflare-deployment # Workers/Pages deployment
└── mcp-tool-best-practices # MCP tool selection
K4: Project (organisation)
Skills, der er specifikke for vores organisation og arbejdsgange.
project/
├── agent-creation-workflow # How we build agents
├── skill-authoring-workflow # How we write skills
├── mining-session-workflow # This very process
└── vendor-skill-evaluation # Evaluation rubrics
Mining-løkken
Fase 1: Discovery
Skills kommer fra alle steder:
Leverandørrepositorier: AWS, Anthropic, Cloudflare, Supabase og community-bidragydere udgiver skill-samlinger. Vi følger 25+ leverandørrødder.
Community-projekter: GitHub er fuldt af Claude Code-skabeloner, agentmønstre og arbejdsgangsdefinitioner.
Interne mønstre: Efterhånden som vores team løser problemer, opstår mønstre. Disse formaliseres til skills.
Dokumentationsmining: Teknisk dokumentation indeholder ofte implicitte skills - procedurer, tjeklister, beslutningstræer.
Discovery er kontinuerlig. Vi bruger en skill-backlog til at spore kandidater før formel evaluering.
Fase 2: Evaluering
Enhver kandidat gennemgår den samme rubrik:
adoption_criteria:
- fills_real_gap: true # We lack this capability
- well_structured: true # Progressive disclosure
- actively_maintained: true # Commits in last 6 months
- portable: true # Not hyper-specific
- tested: true # Evidence of usage
Alle fem produktkriterier skal bestås. Det er derfor, 87% af kandidaterne afvises.
Derefter gennemgår enhver kandidat en separat tillidsgennemgang. Vi behandler ikke et officielt leverandørrepository, en velkendt community-vedligeholder og et tilfældigt GitHub-repository som ligeværdige sandhedskilder.
trust_review:
vendor_credibility:
- ownership_verified # Official vendor, known maintainer, or internal source
- maintenance_signal # Recent commits, issue response, release history
- adoption_signal # Evidence of real use, stars alone are not enough
- provenance_clear # We can trace where the skill came from
prompt_injection_scan:
- hidden_instruction_check # Buried "ignore previous instructions" patterns
- exfiltration_check # Prompts that try to leak files, secrets, or context
- authority_check # Claims of priority over system or developer rules
script_audit:
- inspect_scripts # Read shell/python/js helpers before adoption
- network_and_exec_review # curl|bash, remote downloads, subprocess execution
- file_and_secret_review # Env vars, credential access, broad file writes
- destructive_action_check # rm, reset, overwrite, or unsafe automation
Betroede leverandører får en lettere proveniensgennemgang, men ikke fribillet. Ikke-betroede eller ukendte kilder får et dybere manuelt tjek, og vi kører ikke medfølgende scripts, før de er blevet læst, afgrænset og klassificeret som sikre.
Gap-analyse: Før vi adopterer, søger vi i vores register:
uv run orkestra skills search "<capability>"
Hvis vi allerede har det, har vi ikke brug for det. Hvis vi har noget tæt på, kan vi vælge at fusionere i stedet for at adoptere.
Dybde- og standardscoring: Vi scorer også, hvor fuldt en kandidat udnytter agent-skill-modellen. Et enligt SKILL.md kan stadig være nyttigt, men dybere skills er mere værdifulde, når de adskiller instruktioner fra referencer, scripts og assets på den måde, agentskills.io opfordrer til.
skill_depth:
- level_1: SKILL.md only # Single instruction file
- level_2: SKILL.md + strong description # Clear triggers and scope
- level_3: adds references/ # Load docs only when needed
- level_4: adds atomic scripts/ # Small, reviewable helpers
- level_5: adds assets/examples/templates # Full progressive disclosure
depth_signals:
- standards_adherence # Structure aligns with agentskills.io conventions
- reference_quality # Curated references, not giant context dumps
- script_atomicity # Focused helpers, not opaque monoliths
- tool_boundary_clarity # Clear limits on what the skill can execute
- community_signal # Stars/forks/users help, but only as a weak boost
GitHub-stjerner kan løfte en troværdighedsscore en smule, men de redder aldrig en overfladisk eller usikker skill. Et repository med mange stjerner og én vag SKILL.md og uigennemsigtige scripts scorer lavere end et mindre repository med en præcis beskrivelse, kurateret references/ og atomare hjælpefunktioner, der rent faktisk udnytter den fulde skill-kapabilitet.
Strukturel analyse: Vi tjekker skill-kvalitet:
wc -l vendor/<repo>/<skill>/SKILL.md # Size check
ls vendor/<repo>/<skill>/scripts/ # Supporting files
ls vendor/<repo>/<skill>/references/ # Bundled docs
Hvis en kandidat inkluderer scripts, bliver den gennemgang mere striks. En god skill er ikke bare nyttig; den skal være læselig, afgrænset og sikker at overlade til en agent. Det sikkerhedsfilter alene diskvalificerer en betydelig andel af ellers interessante kandidater.
Fase 3: Indtagelse
Når en skill består evalueringen, kommer den ind i registret. Men skills adopteres aldrig uændrede. De modificeres, så de passer til vores system.
Modifikationer ved adoption:
- Metadata-normalisering: Enhver skill får vores frontmatter-skema
- K-lags-tildeling: Skills placeres i det passende videnslag
- Tag-berigelse: Tags tilføjes til discovery
- Værktøjsdeklaration: Tilladte værktøjer erklæres eksplicit
- Sektionsjustering: Indhold omstruktureres, så det matcher vores template
En typisk skill-YAML efter indtagelse:
metadata:
identifier: vendor-skill-evaluation
name: vendor-skill-evaluation
description: Systematic evaluation of vendor skills for adoption.
type: workflow
layer: K4
semantic_folder: project
source: core
last_updated: '2026-01-17'
frontmatter:
tags:
- agents
- meta
- skill-adoption
- vendor
allowed_tools:
- Bash
- Read
- Write
- Edit
- Grep
- Glob
- Task
Fase 4: Scope-tildeling
Skills tildeles scopes - kategorier, der afgør, hvilke agenter der indlæser hvilke skills:
scopes:
database:
primary_skills:
- domains/schema-migration-workflow
- domains/rpc-validation-checklist
- vendor/supabase/supabase-database
- vendor/supabase/supabase-auth
research:
primary_skills:
- identities/research-workflows
- identities/web-extraction-playbook
- identities/dataset-discovery-quickstart
Agenter erklærer deres scopes, og skills tildeles automatisk:
# Agent definition
scopes: [database, research]
# Gets: all database skills + all research skills + universal skills
Fase 5: Materialisering
Skills lever ikke som YAML i produktion. De renderes til SKILL.md-filer, som Claude Code kan indlæse:
uv run orkestra sync
Denne kommando:
- Læser alle skill-YAML-definitioner
- Renderer dem gennem Jinja-templates
- Skriver SKILL.md-filer til
.claude/skills/ - Organiserer efter K-lag (foundations/, identities/, domains/, stacks/, project/)
Den endelige outputstruktur:
.claude/skills/
├── foundations/ # K0: Universal
├── identities/ # K1: Discipline
├── domains/ # K2: Subject
├── stacks/ # K3: Technology
├── project/ # K4: Organization
└── vendor/ # External skills
Det dvalende scope-mønster
Et af vores mest kraftfulde mønstre er “adopteret-men-ikke-indlæst”-skills. Vi kalder disse dvalende scopes.
Overvej scientific computing-skills fra k-dense-scientific-repositoriet. Vi har adopteret 120+ skills, der dækker bioinformatik, kemi, kvantecomputing og klinisk informatik. Men de fleste af vores agenter har ikke brug for molekylær docking eller genekspressionsanalyse.
I stedet for at indlæse alle 120 skills i hver agent (hvilket oppuster kontekstvinduer), gør vi følgende:
- Adopterer vi skills med et specifikt scope (f.eks.
bioinformatics) - Holder vi dem dvalende - registreret, men ikke indlæst
- Aktiverer vi dem kun, når en agent erklærer det scope
# In scopes.yaml - dormant scope
bioinformatics:
description: "Bioinformatics and genomics"
primary_skills: [] # Empty - skills exist but aren't loaded
# When an agent needs bioinformatics:
# Agent YAML
scopes: [research, bioinformatics] # Now loads bioinformatics skills
Dette mønster lader os have 466 skills i registret, mens typiske agenter kun indlæser 40-60 relevante.
Skill-typer
Skills kommer i tre kognitive mønstre:
Workflow
Ordnede procedurelle trin: “1. Gør X, 2. Så Y, 3. Til sidst Z”
type: workflow
# Examples: schema-migration-workflow, mining-session-workflow
Discipline
Adfærdsmæssige autoværn: “Altid X”, “Aldrig Y”, “Foretræk Z”
type: discipline
# Examples: test-first-discipline, evidence-based-completion
Checklist
Verificeringskriterier: “Bekræft X”, “Verificér Y”, “Tjek Z”
type: checklist
# Examples: auth-validation-checklist, secrets-audit-checklist
Kvalitetsgates
Enhver skill skal bestå validering, før den shippes:
validation:
file_exists: true # Skill file at declared path
frontmatter_valid: true # Frontmatter parses correctly
sections_complete: true # Expected sections present
tools_registered: true # Declared tools exist in registry
Beskrivelser skal være 50-400 tegn med udløsningsfraser (“Use when…”, “When you need…”), så Claude Code ved, hvornår den skal foreslå dem.
Vi validerer løbende:
uv run orkestra validate --show-warnings
Leverandørøkosystemet
Vores 373 leverandør-skills kommer fra:
| Leverandør | Skills | Domæne |
|---|---|---|
| AWS Agent | 19 | Cloud-tjenester |
| Anthropic | 12 | Dokumentgenerering |
| Cloudflare | 8 | Edge computing |
| Supabase | 5 | Database |
| k-dense | 100+ | Scientific computing |
| silvainfm | 4 | Data science |
| Java Developer Kit | 45+ | Spring/Java |
| Vercel | 1 | Browserautomatisering |
Hver leverandørrod erklæres i metadata.yaml:
vendor_roots:
- path: vendor/aws-agent-skills
provider: aws
- path: vendor/k-dense-scientific/scientific-skills
provider: k-dense
- path: vendor/supabase-skills
provider: supabase
Når orkestra sync kører, symlinkes leverandør-skills ind i .claude/skills/vendor/ med deres leverandørnavnerum.
Hvad vi har lært
Selektivitet betaler sig. Det er fristende at adoptere alt, der ser nyttigt ud. Men hver skill koster tokens. Med 2.834 gennemsnitlige tokens pr. skill går bloat hurtigt ud over ydeevnen. Vores adoptionsrate på 13% holder agenter slanke.
Struktur muliggør discovery. K-lagsystemet er ikke bare organisering - det handler om portabilitet. K0-skills kan genbruges hvor som helst. K4-skills er bevidst projektspecifikke. Denne klarhed hjælper både mennesker og agenter med at finde det, de har brug for.
Dvalende scopes skalerer. Man kan adoptere hundredvis af skills uden at indlæse dem alle. Scopes lader dig bygge et omfattende register, samtidig med at individuelle agenters kontekstvinduer forbliver håndterbare.
Modifikation ved adoption er essentiel. Rå leverandør-skills passer sjældent til ens system. Indtagelsesprocessen - tilføjelse af metadata, tildeling af lag, berigelse af tags - får eksterne skills til at fungere internt.
Mining er kontinuerlig. Tallet 3.500 bliver ved med at vokse. Nye leverandørrepositorier dukker op. Community-mønstre opstår. Interne arbejdsgange stivner. Løkken stopper aldrig.
Hvad er det næste?
Vi arbejder på flere forbedringer:
- Automatiseret gap-detektion: Advarsel når almindelige agentfejl kunne løses af en ikke-adopteret skill
- Skill-udfasningsarbejdsgange: Formel proces til at pensionere skills, der er overflødiggjort eller ubrugte
- Cross-skill-afhængigheder: Eksplicit erklæring af skill-forudsætninger
- Brugsanalyser: Spor hvilke skills agenter rent faktisk påkalder vs. bare indlæser
Skill-mining-løkken er infrastruktur. Det er ikke glamourøst. Men det er det, der får 41 agenter til at fungere sammenhængende med 466 kapabiliteter, samtidig med at de holder sig inden for kontekstgrænserne.
Det er historien om, hvordan 3.500 bliver til 466. Ikke ved at ignorere 3.000 - men ved at evaluere dem systematisk og kun adoptere det, der virker.
Vil du se skill-systemet i aktion? Tjek uv run orkestra skills list ud for at udforske vores nuværende register.
Relateret læsning
Mere fra Maguyva-byggeloggen
Hvorfor vi opgraderede kodesøgning til voyage-4-large_
Vi flyttede vores kode-embeddings til voyage-4-large — i øjeblikket øverst på den offentlige RTEB-rangliste for kode-retrieval. Den ærlige version: det kompromis, vi indgår, hvad vi rent faktisk indekserer, og hvorfor vi betaler for premium-embeddings.
Sprogets rekursive selvforbedring: Sådan sliber vi Code Intelligence på tværs af ~280 sprog_
Vi understøtter code intelligence for ~280 sprog. Intet menneske kan håndrevidere det. Så vi byggede en rekursiv selvforbedringsløkke for sprog — stikprøvekontrol, LLM som dommer, ret én ting, gen-validér — og kører den med en flåde af isolerede agenter, indtil udtrækket rent faktisk er korrekt, ikke bare grønt.
Multimodal fusionssøgning: Sådan vælges den rette retriever til hver forespørgsel_
En forespørgsel som 'hvor er parseConfig defineret' vil have en anden søgning end 'hvordan fungerer auth'. Maguyva klassificerer intentionen, vægter fire retrieval-modaliteter derefter og fusionerer resultaterne med vægtet Reciprocal Rank Fusion.