Wat een skill is
Een skill is een herbruikbare beschrijving van hoe een stuk werk gedaan wordt: de stappen, wanneer het relevant is, welke context ervoor nodig is, en hoe het resultaat eruit moet zien. FixControl levert er een set mee en je kunt er zelf schrijven.
Een skill is een eis, nooit een gift. Hij kan zeggen "voor deze klus is het nodig een browser te kunnen openen", en een agent die dat niet mag, kan de skill simpelweg niet draaien — de skill kan het recht niet uitdelen. Wat een agent mag, blijft bij governance en beleid; een skill vormt alleen hoe hij doet wat hij al mag.
Open het bij Skills (/skills). Lezen staat open voor iedereen die kan inloggen — wie een run volgt moet kunnen zien welke skills die run vormden. Een skill aanmaken, aan- of uitzetten, importeren en beoordelen mag alleen een beheerder. Een skill bewerken en aan agents toewijzen kan een beheerder of een manager.
Je kunt hier ook gewoon om vragen. Vraag Command Center "wat kunnen de agents?" en hij somt de skills op, waar elk voor is, welke agents hem gebruiken, en of een agent waaraan hij is toegewezen hem überhaupt kan draaien. Hij kan een skill aan- of uitzetten, er een aan een agent geven of afnemen, en simuleren of een skill bij een stuk werk zou afgaan zonder iets te draaien. Een nieuwe skill schrijven — zijn stappen, zijn triggers, wat hij vereist — blijft hier: een procedure is geen zin.
Waarom je er een zou gebruiken
Drie redenen, in de volgorde waarin ze meestal opkomen:
- Maak een terugkerende klus consistent. Hetzelfde soort ticket hoort op dezelfde manier afgehandeld te worden, wie er ook dienst heeft en welke run het ook oppakt.
- Leg vast wat je team weet. "Kijk eerst in de migratiemap voordat je het schema aanraakt" is kennis die anders in het hoofd van één engineer zit.
- Vraag om echte verificatie. Twee van de meegeleverde skills beschrijven niet alleen werk — ze openen een echte browser op de gewijzigde routes en op de voorbeeldapplicatie, en leveren een verificatieresultaat op.
De lijst
De Skills-pagina is een register van alle skills die je organisatie heeft — die FixControl meelevert, die je zelf schreef, en die je importeerde. Per skill toont ze de naam, de bron, het vertrouwen (Intern, Geverifieerd, Community, In quarantaine), de beoordeling (Wacht op beoordeling, Goedgekeurd, Afgewezen, Opnieuw beoordelen), het risico, welke agents hem gebruiken, en de status. Een klik op een regel opent de details naast de lijst; Volledige pagina openen opent de eigen pagina van de skill.
Snelfilters: Alle, Geïnstalleerd, Actief, Beoordeling nodig en Aandacht, plus filters op bron, vertrouwen, categorie, risico, de agent die hem gebruikt en het platform. Aandacht is de interessante: die verzamelt skills waarvan de toegewezen agent ze niet kan draaien (Toegewezen agent kan hem niet uitvoeren — de skill is dan inert in plaats van stilletjes half te draaien), skills in quarantaine, skills waarvan de inhoud niet meer klopt met de checksum, en geïmporteerde skills waarvoor een update klaarstaat.
Skill toevoegen / ontdekken biedt drie wegen: Skills ontdekken (een samengestelde catalogus), Importeren uit een bron, en Eigen skill schrijven. Welke weg je ook kiest, een nieuwe skill beïnvloedt nooit runs op het moment dat je hem opslaat: een eigen skill landt als draft die op beoordeling wacht, een geïmporteerde landt uitgeschakeld en wacht op beoordeling.
Een skill importeren, beoordelen en vertrouwen
Naast zelf schrijven kun je een skill van buiten importeren: een item uit de ontdekcatalogus, een skill in een GitHub- of GitLab-repository, een SKILL.md-bestand, of geplakte tekst. Importeren en beoordelen mag alleen een beheerder. Een geïmporteerde skill landt altijd uitgeschakeld en wacht op beoordeling.
- Vastgepind, nooit zwevend. Een import wordt op een exacte commit opgehaald en bewaard als momentopname met een checksum. De skill draait die bewaarde versie — nooit wat de bron vandaag zegt. Klopt de bewaarde inhoud ooit niet meer met de checksum, dan gaat de skill in quarantaine en draait niets hem.
- Gescand, daarna beoordeeld door een mens. Elke geïmporteerde versie wordt gescand op dingen waar een skill nooit om mag vragen — de systeeminstructies opzijzetten, geheimen lekken, goedkeuringen omzeilen, naar productie pushen, willekeurige shell-commando's, verborgen tekens en meer. Voordat een skill goedgekeurd kan worden, moet elke bevinding met ernst hoog of kritiek één voor één zijn erkend. Een schone scan is één laag, geen oordeel: de beoordeling is de beslissing.
- Alleen goedgekeurde en vertrouwde skills worden gebruikt. Een skill is voor een agent alleen beschikbaar als het vertrouwen Intern of Geverifieerd is, de beoordeling Goedgekeurd, de inhoud klopt met de checksum, en hij past bij het platform en de runtime van de omgeving. Dat wordt gecontroleerd bij toewijzen, bij inschakelen, en opnieuw bij elke run.
- Updates wachten op beoordeling. Controleren op update haalt een nieuwere versie uit de bron; die wacht, met een diff, naast de vastgepinde versie op beoordeling, en de vastgepinde versie blijft draaien tot je wisselt. Teruggaan naar een oudere goedgekeurde versie is een rollback, en wordt als zodanig vastgelegd.
- Een goedgekeurde eigen skill bewerken — de instructies, procedure, capabilities, context, rollen of het outputcontract — zet hem terug op Opnieuw beoordelen; tot hij weer is goedgekeurd, gebruikt geen agent hem. Hem hernoemen, of de beschrijving, kosten of triggers wijzigen, doet dat niet.
- Een eigen of geïmporteerde skill die geen enkele capability vereist, wordt geweigerd: hij zou elke agent bereiken.
Elke stap — importeren, beoordelen, goedkeuren, afwijzen, update, versiewissel, rollback, quarantaine — staat in de audithistorie van de skill.
FixControl-engineeringskills (opt-in)
FixControl levert een set engineeringskills mee — adviserende werkwijzen voor code begrijpen voordat je hem wijzigt, debuggen, testen, reviewen en meer. Ze staan uit voor je organisatie tot je ze aanzet: de Skills-pagina meldt hoeveel er beschikbaar zijn en dat ze uit staan voor deze organisatie, met de knop FixControl-engineeringskills inschakelen ({count}). Aanzetten is een beslissing van een beheerder en wordt vastgelegd met de waarde ervoor en erna; Uitschakelen zet ze weer uit.
Wat ze doen als ze aan staan: ze voegen een afgebakend blok adviserende werkwijze toe aan de opdracht van de Developer-, QA- en Support-agents waaraan ze zijn toegewezen — nooit aan de systeeminstructies, en nooit met enig recht. De werkwijze zegt zelf dat ze ondergeschikt is aan elke systeemregel, scope, goedkeuringsbeleid en uitvoeringsbeperking. Een tekst wordt in zijn geheel doorgegeven of helemaal niet (maximaal 4.000 tekens per skill), en de tekst van een meegeleverde werkwijze-skill kun je niet bewerken. Een skill die je één voor één aan- of uitzette, houdt zijn eigen status als je de schakelaar voor de hele organisatie gebruikt.
Statussen
| Status | Betekent |
|---|---|
| Active | In aanmerking voor selectie. Dit is de enige status die een run ooit kiest. |
| Draft | In bewerking. Nooit geselecteerd. |
| Disabled | Uitgezet, bewaard. Nooit geselecteerd. |
| Archived | Uit dienst, bewaard voor historie. Nooit geselecteerd. |
Wat er in een skill zit
De detailpagina heeft tien tabbladen: Overzicht, Herkomst, Beoordeling, Instructies, Triggers, Context, Capabilities, Agents, Verificatie en Versies.
- Herkomst — waar de skill vandaan komt: meegeleverd door FixControl, geschreven door je organisatie, of geïmporteerd, met de bron en de exact vastgepinde versie — plus de platforms en runtimes waar hij bij past.
- Beoordeling — de beoordelingsstatus, de bevindingen van de securityscan en het beoordelingsbesluit.
- Instructies — de procedure in gewone taal, en het verwachte resultaat.
- Triggers — wanneer de skill relevant is. Een trigger matcht op de rol van de agent, het soort issue, een vlag op het issue, een patroon van gewijzigde bestanden, een UI/UX-missie, een falende test, een expliciet verzoek, of altijd. Patronen zijn letterlijke tekst of een begrensd jokerteken — nooit een reguliere expressie, zodat er geen trigger geschreven kan worden die lang duurt om te evalueren.
- Context — welke bronnen de skill van de agent gelezen wil hebben.
- Capabilities — wat de skill vereist (en eventueel prefereert). Deze lijst beslist of een toegewezen agent hem überhaupt kan draaien.
- Agents — aan wie hij is toegewezen. Een agent toewijzen die een vereiste capability mist mag; dat wordt gemarkeerd in plaats van de toewijzing zonder melding te laten vallen.
- Verificatie — of de skill een verificatieresultaat oplevert, en hoe streng.
- Versies — zie Elke wijziging is een versie.
Wat een eigen skill nooit mag vereisen
Sommige capabilities zijn niet door een skill te vormen, omdat een skill niet de plek is waar autoriteit wordt besloten: orkestratie delegeren, de technische poort, de securitypoort, de deploymentpoort, een workflow escaleren, een patch toepassen, naar productie uitrollen, onbeheerde deployment, en een CI/CD-oordeel dragen. Zoiets vereisen wordt bij opslaan geweigerd, met de capability erbij benoemd.
Hoe een skill voor een run wordt gekozen
De volgorde doet ertoe, en is niet de volgorde die je zou verwachten:
- De orkestrator kiest de agent voor het stuk werk. Een skill kiest nooit een agent en routeert nooit werk — zie Orkestratie & context.
- Pas daarna worden de actieve, toegewezen, getriggerde skills van die agent verzameld.
- Ze worden geordend op de prioriteit van de trigger die matchte, hoogste eerst, en er gaan er maximaal vijf mee de run in. Wat afviel wordt vastgelegd, zodat een run kan vertellen dat een zesde skill matchte en het niet haalde.
Elke selectie wordt per run vastgelegd met een van vier uitkomsten: selected, executed, refused of failed. Een weigering benoemt zijn reden — meestal een capability die de agent niet heeft.
Een FixControl-skill aanpassen
Je kunt een meegeleverde skill aan je organisatie aanpassen zonder hem te forken. Aanpasbaar: de naam, beschrijving, instructies, triggers, contextvereisten, verificatiebeleid, kostenbeleid en status.
Vast voor de hele levensduur van de skill: zijn vereiste en optionele capabilities, zijn procedure, zijn uitvoercontract, en welke agentrollen hem mogen hebben. Die vier maken een meegeleverde skill tot wat hij beweert te zijn — een organisatie die ze kon herschrijven, kon "verifieer in een echte browser" veranderen in iets dat niets verifieert en toch een verificatie rapporteert.
Een aangepaste FixControl-skill krijgt het label edited in de lijst, en Restore zet de meegeleverde versie terug.
Een meegeleverde standaardtoewijzing intrekken is een expliciete handeling en wordt als zodanig opgeslagen, zodat een upgrade nooit stilletjes een skill terugkoppelt die je bewust had weggehaald.
Elke wijziging is een versie
Een skillversie wordt geïdentificeerd door zijn inhoud, niet door een wijzigingsteller: de bepalende velden worden gehasht, en die hash is de versie. Twee gevolgen die er in de praktijk toe doen:
- Een run kan altijd precies de versie noemen waaronder hij draaide — inclusief de onaangeraakte standaard, want dat is ook een versie.
- Een skill terugbewerken naar wat hij eerder zei, levert exact de versie op die hij eerder had, en de tijdlijn toont beide bewerkingen nog steeds.
Versies zijn append-only: er komt een nieuwe versie bij, er wordt nooit een oude overschreven.
Kosten
Elke skill draagt een kostenklasse — Low, Medium of High — zodat een skill die een browser opent zichtbaar niet hetzelfde gewicht heeft als een die een alinea instructie toevoegt. De klasse is informatief: hij overrulet niet de modelkostenplafonds op de agent zelf, die in Orkestratie & context beschreven staan.
Probeer het voordat je erop vertrouwt
Elke skill heeft een alleen-lezen simulatie: die beantwoordt "zou deze skill bij dit soort werk gekozen worden, en wat zou hij mogen?" Er draait niets, er wordt geen werk gemaakt, er wordt geen agent gestuurd. Hij gebruikt dezelfde resolver als de echte run, dus het antwoord kan niet van het echte gedrag afdrijven.
Veelgestelde vragen
Kan een skill een agent een nieuw recht geven? Nee. Hij kan er alleen een vereisen die de agent al heeft. Dat is de ene regel die skills veilig maakt om aan een beheerder te delegeren.
Kan ik een skill voor elk issue laten draaien? Ja — de always-trigger. Denk aan het plafond van vijf skills per run: een altijd-aan-skill concurreert met de skills die iets specifieks matchten.
Wat gebeurt er met een skill waarvan de agent gepauzeerd is? Niets draait hem. Een agent pauzeren haalt zijn taken uit het plan; de skill blijft toegewezen en wordt weer actief zodra de agent dat is.
Zijn skills per project? Nee. Een skill hoort bij je hele organisatie. Beperk werk tot een project met projecten en triggers, niet met een tweede kopie van de skill.
Gerelateerd: Orkestratie & context · Governance & beleid · Wijzigingsvalidatie